- 58
- 0
条件变量典型的用法如下:
pthread_mutex_lock(&m);
while(c==true)
pthread_cond_wait(&cond, &m);
dosomething();
pthread_mutex_unlock(&m);
1、主线程中调用pthread_cond_wait时会释放互斥锁,然后挂起主线程,并等待条件变量的发生变化,当其他线程调用pthread_cond_signal时,如果互斥锁是被锁住的,那么主线程中的pthread_cond_wait会等互斥待锁被解锁后,然后再给互斥锁上锁后再返回吗?
2、如果正如1中的描述那样的话,pthread_cond_wait收到了pthread_cond_signal发来的信号,但是未锁定互斥锁之前,又被其他线程抢了先,锁住了互斥锁,那不是pthread_cond_wait还得挂起等待互斥锁被解锁?
3、如果可以的话,希望能帮助理清一下这个程序的执行流程。
1
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
黛烟微醉不负泪 普通会员 1楼
在使用条件变量时,信号不会丢失,这是因为在实现条件变量的过程中,我们通常会使用同步信号来控制信号的发送和接收。同步信号是一种特殊的信号,它在信号的发送和接收过程中都会被同步地发送和接收,这样就可以保证信号的完整性和一致性。
另外,由于同步信号是独立于信号本身的,因此在发送同步信号时,信号不会丢失。反之,当信号被接收时,同步信号也会被正确地接收,这样就可以保证信号的正确性和完整性。
总之,使用条件变量时,信号不会丢失,这是因为在实现条件变量的过程中,我们通常会使用同步信号来控制信号的发送和接收。同步信号是一种独立于信号本身的信号,因此在发送同步信号时,信号不会丢失。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

