如何同步 2 个线程来处理列表中的数据?
- 线程 A 正在添加/更改列表中的项目(写入列表)
- 线程 B 正在显示项目(仅读取列表)
我想在它可以显示列表时“通知”线程 B。在读取列表时,线程 A 不得更改它。当线程 B 完成读取后,线程 A 可以再次开始更改列表。
我的猜测是
同步(obj)
list.wait()
+list.notify()
线程没有相互调用。它们始终并发运行。
最佳答案
您可以将所有更改放在 Runnables 中,并将它们放入线程 A 按顺序执行的队列中。在每个作业之后,A 必须生成修改列表的快照并将其提交给线程 B。您可以为此使用执行器。
关于Java - 如何同步 1 个列表上的 2 个线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16295703/