Как узнать, закончилась ли защелка

У меня есть две темы с countDownLatch установите в 1, чтобы по окончании первого потока начался второй. И что я хочу сделать, так это то, что, когда второй завершает свою задачу, я хочу получить данные, вычисленные из обоих потоков, для выполнения некоторых операций.

теперь мой вопрос, есть ли способ узнать, если CountDownLatch объект закончил свою задачу?

Обновить

это безопасно использовать

while (latch.getcountDown()==0) {
 // do the calculations on the data processed by the two threads
}

2 ответа

Вы пробовали "присоединиться" к темам. Вместо использования тяжелой защелки соединение может помочь.

Да, когда ваш поток завершает работу и может принять запрос или конкретную задачу, он вызывает метод countDown для защелки. А с другой стороны, в вашем основном потоке (или в потоке координатора) заблокируйте метод await для защелки.

Теперь, когда подчиненные потоки 'x' завершают свою задачу и вызывают countDown, мастер узнает об этом и выходит из режима ожидания и выполняет дальнейшую обработку.

Другие вопросы по тегам