我有多个消费者线程在等待大小为1的CountDownLatch
,使用await()
方法。同时,我有一个单独的生产者线程,当成功完成时调用countDown()
方法。
当没有错误时,这样做非常好。
但是,如果生产者检测到错误,我希望它能够向消费者线程发出错误信号。理想情况下,我可以让生产者调用类似于abortCountDown()
的方法,并使所有消费者接收InterruptedException
或其他异常。我不想调用countDown()
方法,因为这需要所有消费者线程在调用await()
方法后再进行额外的手动检查以确保成功。我更希望他们只接收异常,因为他们已经知道如何处理异常。
我知道CountDownLatch
没有提供中止功能。是否有其他同步原语可以轻松适应,以有效创建支持中止倒计时的CountDownLatch
?
countDown()
并且在此同时调用了abort()
,则abort()
中的while循环存在潜在问题。 - DaedalusAlpha