Многопоточность. Класс CyclicBarrier

В многопоточном программировании часто случаются ситуации, когда поток должен находится в режиме ожидания в определенной точке приложения, пока остальные потоки не достигнут этой точки. Как только нужное количество потоков достигает точки ожидания, то приостановка выполнения потоков снимается и потоки могут вновь продолжить свою работу. На пример, если ряд потоков, каждый из которых выполняет часть общего вычисления и результат их работы должен быть объединен в общий результат. Объединить результат вычисления можно только в том случае, когда все потоки завершат свои маленькие

Читать далее

Многопоточность. Класс CountDownLatch

Иногда возникают ситуации, когда поток необходимо приостановить до наступления какого-то события (или событий). Для этих целей в Java предусмотрен класс CountDownLatch (представлен в Java 1.5). Объект класса CountDownLatch создается со счетчиком событий, который уменьшается по мере возникновения событий, как только счетчик будет равен 0, блокировка потока будет снята. Во время ожидания снятия блокировки может возникнуть исключения вида InterruptedException, поэтому вызов метода ожидания должен быть обернут в блок try/catch или в самом методе должно быть объявлено, что в нем может возникнуть

Читать далее

Site Footer