gpt4 book ai didi

java - 生产者/消费者应用程序的设计

转载 作者:行者123 更新时间:2023-12-02 08:38:18 26 4
gpt4 key购买 nike

我有一个生成器应用程序,可以生成索引(将其存储在某些内存树数据结构中)。消费者应用程序将使用索引来搜索部分匹配。

我不希望消费者 UI 在生产者索引数据时必须阻塞(例如通过某些进度条)。基本上,如果用户希望使用部分索引,它就会这样做。在这种情况下,制作者可能必须停止索引一段时间,直到用户离开到另一个屏幕。

粗略地说,我知道我需要等待/通知协议(protocol)来实现这一点。我的问题:是否可以在生产者线程执行其业务时使用 wait/notify 来中断它?我需要什么 java.util.concurrent 原语才能实现此目的?

最佳答案

根据您的描述,您没有理由需要等待/通知。只需同步对数据结构的访问,即可确保访问时处于一致的状态。

编辑:通过“同步访问”,我并不是指同步整个数据结构(这最终会阻止生产者或消费者)。相反,仅同步那些正在更新的位,并且仅在更新它们时同步。您会发现生产者的大部分工作可以以不同步的方式进行:例如,如果您正在构建一棵树,您可以识别需要发生插入的节点,在该节点上同步,执行插入,然后继续。

关于java - 生产者/消费者应用程序的设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/669294/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com