【发布时间】:2011-12-17 20:43:39
【问题描述】:
我正在编写一个具有 5 个线程的应用程序,这些线程同时从 Web 获取一些信息并填充缓冲区类中的 5 个不同字段。
当所有线程完成工作时,我需要验证缓冲区数据并将其存储在数据库中。
我该怎么做(当所有线程完成工作时收到警报)?
【问题讨论】:
-
Thread.join 是一种相当低级的非常 Java 特有的解决问题的方法。此外,问题在于 Thread API 存在缺陷:您无法知道 join 是否成功完成(请参阅Java Concurrency In Practice)。更高级别的抽象,例如使用 CountDownLatch 可能更可取,并且对于没有“卡”在 Java-idiosynchratic 思维模式中的程序员来说看起来更自然。不要和我争论,去和Doug Lea争论; )
标签: java multithreading wait