Как заставить дочерние потоки ждать условие и все просыпаются одним вызовом из родительского потока? - PullRequest
0 голосов
/ 03 июня 2009

Дочерние потоки спят в состоянии ожидания, и родительский поток может вызвать некоторую подпрограмму, чтобы разбудить все дочерние потоки для запуска?

Ответы [ 2 ]

3 голосов
/ 03 июня 2009

Если вы используете потоки POSIX (pthreads), то pthread_cond_wait и (в вашем случае) pthread_cond_broadcast ваши друзья. : -)

2 голосов
/ 03 июня 2009

Если вы используете Win32, то вы можете использовать ручной сброс Событие . Ваш родительский поток будет вызывать SetEvent() и может разбудить все дочерние потоки, ожидающие этого объекта, с помощью функции, такой как WaitForSingleObject().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...