2014-11-30 4 views
0

настоящее время у меня что-то вроде этогоКак ждать нить, пока она не начала работы

Это мой член класса

boost::shared_ptr<boost::thread_group> my_group; 

Где-то в моем коде я делаю это

my_group->create_thread(boost::bind(&Myclass::method, this)); 

Теперь в приведенном выше описании есть ли способ заблокировать/подождать, пока эта нить не начнется? , такие как

wait for above thread to lauch and start 

Do next stuff after that. 
+0

Возможно, общий флаг? Ваш порожденный поток может установить флаг, и ваш основной поток будет ждать изменения флага. – BlamKiwi

ответ

0

Так что, как documentation говорит:

Постусловие: this-> размер() увеличивается на единицу, новый поток работает.

после звонка этот участник функция ваш поток уже работает. После этого вы можете сделать .

+1

Однако, если ваша точка входа в потоки устанавливает некоторые мьютексы, на которые вы полагаетесь на своем сайте (и почему еще вам было бы интересно, начал ли поток выполнение?), Это, возможно, еще не сделано. [Здесь это усложняется] (http://codereview.stackexchange.com/q/9431/2503). –

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

  • Нет связанных вопросов^_^