Phaser Class и Tiering
Согласно javadoc
, в Phaser
учебный класс,
Фазеры могут быть многоуровневыми (т. Е. Построенными в древовидных структурах) для уменьшения конкуренции. Вместо этого можно настроить фазеры с большим количеством сторон, которые в противном случае столкнулись бы с большими расходами на синхронизацию, чтобы группы подфазеров имели общего родителя. Это может значительно увеличить пропускную способность, даже если это повлечет за собой большую нагрузку на каждую операцию.
Кто-нибудь может прояснить это утверждение, Это дало мне некоторое замешательство.
1 ответ
Сбалансированные деревья хорошо работают в рекурсивных программах разложения. Одним из примеров этого является инфраструктура Fork/Join в Java7. Я полагаю, что многоуровневая версия была добавлена в Phasers как еще один способ использования этой платформы, но за ужасную цену. Когда Фаза должна ждать прибытия, структура создает другой поток, чтобы занять его место. Для большого количества официантов это может быть катастрофой. Вы можете увидеть, как это работает самостоятельно, загрузив пример программного обеспечения из этой статьи, которую я написал два года назад.