В docs для CountDownLatch
я вижу что-то вроде:Java: есть CountDownLatch потокобезопасны
public void run() { try { startSignal.await(); doWork(); doneSignal.countDown(); } catch (InterruptedException ex) {} // return; }
Здесь startSignal
и doneSignal
являются CountDownLatch
объекты.
В документах ничего не говорится о том, что класс является потокобезопасным или нет.
Определить * потокобезопасность * в этом случае. – OldCurmudgeon
Нить безопасно, в этом случае, например, было бы гарантировать, что только один поток вызывает 'countDown' за раз. Подпись не говорит, что она синхронизирована: 'public void countDown()' – treecoder
'CountDownLatch' гарантирует, что' await' будет блокироваться до тех пор, пока 'countDown()' не будет вызван точно указанным числом раз, независимо от того, сколько потоков может называться в то же время. – Misha