从pthread到main的信号

时间:2015-01-11 23:56:41

标签: c pthreads signals

pthread_t thread_id;
while(1) {
   if(counter < 3) {
      // do something
      pthread_create( &thread_id , NULL , handle_me, (void*)arg);
   }
   else {
      // wait for counter to be changed 
      // pthreads will be changing the counter 
      // when changed, go back to beginning of loop 
      counter++;
   }
}

我正在努力实现以下目标:从pthread到主要信号。 我有什么选择?

计数器在线程中更改时受mutex保护。

1 个答案:

答案 0 :(得分:1)

使用条件变量。从增加计数器的线程使用pthread_cond_signalpthread_cond_broadcast。在等待信号的另一个线程中,使用pthread_cond_waitpthread_cond_timedwait