- 论坛徽章:
- 0
|
本帖最后由 juffun 于 2010-10-25 21:00 编辑
为何我用gcc的时候不加-lpthread在这种情况下,pthead_cond_signal之后pthead_cond_wait可以一直不停的返回,那个while循环不断的执行。而用gcc -pthread,pthread_cond_wait在收到信号之后只会执行一次,也就是while循环只会运行一次,等待下一次pthread_cond_signal,难道与pthread_cond_signal/wait的实现有关?
我的平台是Fedora 13
谢谢了
- pthread_mutex_t mutex;
- pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
- int main()
- {
- int i = 1;
- pthread_cond_signal(&cond);
- while(1){
- printf("loop %d\n", i++);
- pthread_mutex_lock(&mutex);
- pthread_cond_wait(&cond,&mutex);
- pthread_mutex_unlock(&mutex);
- printf("receive signal over\n");
- }
- }
复制代码 |
|