【发布时间】:2012-05-04 18:01:59
【问题描述】:
我有多个消费者线程使用await() 在大小为 1 的 CountDownLatch 上等待。我有一个生产者线程,它在成功完成时调用countDown()。
在没有错误的情况下效果很好。
但是,如果生产者检测到错误,我希望它能够向消费者线程发出错误信号。理想情况下,我可以让生产者调用 abortCountDown() 之类的东西,并让所有消费者收到 InterruptedException 或其他一些异常。我不想调用countDown(),因为这需要我所有的消费者线程在调用await() 后进行额外的手动检查是否成功。我宁愿他们只收到一个他们已经知道如何处理的异常。
我知道CountDownLatch 中没有中止功能。是否有另一个同步原语可以轻松适应以有效地创建支持中止倒计时的CountDownLatch?
【问题讨论】:
标签: java concurrency java.util.concurrent