2016-08-08 13 views
0

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

Мой вопрос: что такое конструкция, подобная этой?

Сначала я думал о мьютексе, но насколько я знаю, мьютекс - это конструкция, которая позволяет только одному потоку запускаться сразу (см. Эту ссылку https://www.quora.com/Semaphore-vs-mutex-vs-monitor-What-are-the-differences).

Для меня эта конструкция звучит как фазер в java, но у моей конструкции нет логики подсчета, поэтому мне было интересно, какова правильная формулировка.

+0

Это ручки ожидания. Вы должны указать язык. –

+0

Это пользовательский язык программирования, о котором никто не узнает. – Adrodoc55

ответ

0

Соответствующие классы Java и C# имеют в них слово «барьер», так что это может быть то, что вы хотите.

+0

Согласно [javadoc of CyclicBarrier] (https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CyclicBarrier.html) барьер представляет собой конструкцию, в которой может доходить до n потоков , Барьер прерывается, как только количество ожидающих потоков достигнет настроенного числа n. Это не то, что у меня есть, потому что в моем случае «барьер» должен быть нарушен явно. – Adrodoc55