我看了很多关于pthread_cond_wait(pthread_cond_t *cond,pthread_mutex_t *mutex)函数的解释,大多人认为这个函数是先判断cond指向的条件变量是否为真,如果不为真的话,就先释放由mutex指向的互斥锁,然后将当前线程(用t1表示)阻塞,即将线程t1挂到与cond指向的条件变量相关的等待队列上。我的疑问是,如果当mutex指向的互斥锁释放以后,还没来得及将线程t1挂到相应的等待队列之前,当前执行流程就被调度了,然后执行另一个线程t2,线程t2中调用pthread_cond_signal函数之后,能对线程t1产生什么影响?
2 回答
慕盖茨4494581
TA贡献1850条经验 获得超11个赞
pthread_cond_wait(pthread_cond_t *cond,pthread_mutex_t *mutex)
这个函数执行的应该是一个原子操作,所以应该不可能出现你说的那种情况~
- 2 回答
- 0 关注
- 76 浏览
添加回答
举报
0/150
提交
取消