从 pthread 到 main 的信号

Signal from pthread to main

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 到 main 的信号。 我有什么选择?

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

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