从 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_signal
或 pthread_cond_broadcast
。在等待信号的另一个线程中,使用 pthread_cond_wait
或 pthread_cond_timedwait
.
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_signal
或 pthread_cond_broadcast
。在等待信号的另一个线程中,使用 pthread_cond_wait
或 pthread_cond_timedwait
.