![]() |
1
2
这种简单的通知就是
在更新程序线程中
然后在你的检查线,有
不要使用thread.sleep(),因为你不能真正唤醒线程,除非你打断它,这有点讨厌。相反,使用上面的等待/通知过程。
您还可以查看通过显式
BlockingQueue
在线程之间共享。更新程序线程将事件放入队列,而检查程序线程使用
与此方案的不同之处在于,更新程序线程可以传递有关已更改内容的特定信息,而不是像wait/notify那样只说“已更改的内容”。 此外,线程会明确地通知每个更新,因此不会丢失任何更新。它也比等待/通知更灵活,因为更新通知不需要锁定数据。 |
![]() |
2
1
不能强制给定线程运行。但是,您可以将检查线程置于睡眠状态,并让生成线程在数据准备就绪时通知它。 这是一个典型的“生产者/消费者”问题,java.lang.object有一些方法可以帮助您实现这个问题(wait/notify/notifyall)。对于更高级别的构造,请检查java.util.concurrent |
![]() |
user107586 · 如何处理等待句柄不会导致无限循环? 6 月前 |
![]() |
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 6 月前 |
![]() |
BenjiFB · C#内存缓存:在一次操作中追加到列表? 6 月前 |
![]() |
András Takács · Python多线程问题 10 月前 |
|
András Takács · Python多线程错误 10 月前 |