
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
07.08.2015, 20:44
|
|||
|---|---|---|---|
|
|||
Когда использовать CyclicBarrier ? |
|||
|
#18+
Читаю про синхронайзеры. Прочитал про CyclicBarrier. Не могу придумать жизненную ситуацию, когда его использовать. Помогите Я так понимаю суть синхронайзера в том, что поток достигает некоторой точки и ждёт пока остальные n-1 потоков не достигнут определенной точки. Когда n потоков достигли определенной точки - выполняется callback барьера и потоки "зависшие" на определенной точке продолжают выполнение. при следующем достижении потоками barrier.await() - всё будет идти по кругу. определенная точка == barrier.await() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.08.2015, 21:20
|
|||
|---|---|---|---|
Когда использовать CyclicBarrier ? |
|||
|
#18+
Это достаточно специфичный синронайзер, на практике встречается редко. Обычно это тесты: 1) Тесты многопоточности, когда пытаются понять корректно ли работает код при одновременном начале работы X потоков одной точки. 2) Тесты перфоманса, когда надо попытаться начать работу чего-либо из разных потоков по возможности одновременно. В общем, редкий зверь. Он не один такой в JDK. Phaser часто встречали? А DelayQueue? В JDK много такого можно найти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.08.2015, 23:49
|
|||
|---|---|---|---|
|
|||
Когда использовать CyclicBarrier ? |
|||
|
#18+
cdtyjvЭто достаточно специфичный синронайзер, на практике встречается редко. Обычно это тесты: 1) Тесты многопоточности, когда пытаются понять корректно ли работает код при одновременном начале работы X потоков одной точки. 2) Тесты перфоманса, когда надо попытаться начать работу чего-либо из разных потоков по возможности одновременно. В общем, редкий зверь. Он не один такой в JDK. Phaser часто встречали? А DelayQueue? В JDK много такого можно найти. Просто задачку задали придумать и сделать с использованием CyclicBarrier, а мне даже ситуацию нормально не придумать. В JDK java doc-e пример какой-то кисленький. То, что вы описали - там вполне достаточно и CountDownLatch-а. про Phaser пока только слышал и не разбирался для чего он нужен)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.08.2015, 13:59
|
|||
|---|---|---|---|
Когда использовать CyclicBarrier ? |
|||
|
#18+
questionerтам вполне достаточно и CountDownLatch-а. про Phaser пока только слышал и не разбирался для чего он нужен)) CyclicBarrier можно переиспользовать, т.е. делать несколько фаз, в каждой из которой стартует N потоков одновременно Phaser вроде как позволяет динамически менять число N в процессе работы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.08.2015, 16:23
|
|||
|---|---|---|---|
Когда использовать CyclicBarrier ? |
|||
|
#18+
questionerЧитаю про синхронайзеры. Прочитал про CyclicBarrier. Не могу придумать жизненную ситуацию, когда его использовать. Помогите Я так понимаю суть синхронайзера в том, что поток достигает некоторой точки и ждёт пока остальные n-1 потоков не достигнут определенной точки. Когда n потоков достигли определенной точки - выполняется callback барьера и потоки "зависшие" на определенной точке продолжают выполнение. при следующем достижении потоками barrier.await() - всё будет идти по кругу. определенная точка == barrier.await() Простой HTTPClient c CyclicBarrier задачка простая - есть в инете - скачки http://www.life-prog.ru/2_22916_CyclicBarrier.html https://www.ibm.com/developerworks/ru/library/j-5things5/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/search_topic.php?author=-pretender-&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
91ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 695ms |
| total: | 928ms |

| 0 / 0 |
