读书人

linux中程序中的3个线程 如何让线程1控

发布时间: 2013-06-25 23:45:42 作者: rapoo

linux中程序中的3个线程 怎么让线程1控制线程 2 线程3
线程1 2 3 都在同时运行,

线程1 突然来了个一个通知,需要让线程2 与 3 同时阻塞在那里,或者空转也行(这个可以加标记的可以实现)!
现在是想同时阻塞等待,所以请问大侠们怎么弄?
[解决办法]
pthread_cond_t cond
pthread_mutex_t mutex
volatile int flag = 0
//init cond and mutex

thread1:
//receive a message
flag = 1
...
...
//going to terminate
pthread_cond_broadcast(&cond)

thread2:
//begin
pthread_mutex_
if(flag) {
pthread_mutex_lock(&mutex)
pthread_cond_wait(&cond, &mutex)
pthread_mutex_unlock(&mutex)
}

thread3:
//ditto

读书人网 >UNIXLINUX

热点推荐