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
保护。
答案 0 :(得分:1)
使用条件变量。从增加计数器的线程使用pthread_cond_signal
或pthread_cond_broadcast
。在等待信号的另一个线程中,使用pthread_cond_wait
或pthread_cond_timedwait
。