2013-05-30 7 views
1

Согласно javadoc, в классе Phaser,Phaser Класс и многоуровневое

фазера может быть многоуровневым (то есть, построенный в древовидных структурах), чтобы уменьшить конкуренцию. Фазеры с большим количеством сторон, которые в противном случае могли бы столкнуться с большими расходами на синхронизацию, могут быть настроены таким образом, чтобы группы субфазеры имели общий родитель. Это может значительно увеличить пропускную способность, даже несмотря на то, что она наносит большой ущерб для каждой операции.

Может ли кто-нибудь прояснить это утверждение, это дало мне некоторую путаницу.

ответ

2

Сбалансированные деревья хорошо работают в рекурсивных программах разложения. Одним из примеров этого является структура Fork/Join в Java7. Я предполагаю, что многоуровневое добавление к Phasers было еще одним способом использования этой структуры, но с ужасной стоимостью. Когда фаза должна ждать прибытия, фреймворк создает другой поток, который займет свое место. Для большого количества официантов это может быть катастрофой. Вы можете убедиться, что это работает самостоятельно, загрузив пример программного обеспечения от this статьи, которые я написал два года назад.

Смежные вопросы