C_and_CPP 板


LINE

开发平台(Platform): Linux 编译器 GCC 额外使用到的函数库(Library Used): pthread 问题(Question): 今天刚好在研究critical section以及pthread的CV,他必须搭配mutex lock才能运作。 我看网路的文章,都说当thread进到pthread_cond_wait()时, 会先卡在这里并释放lock,可以透过其他thread呼叫signal或是broadcast再度唤醒。 同时也有人提到signal是保证不少於一个blocked cond被唤醒,所以建议把if变成while。 这边我困惑的点在於: 如下面程式,假设t1~t4现在都执行到wait阶段,若t5呼叫了signal或是broadcast, 导致t1~t4都收到了讯号,当t5释放lock後,是t1~t4都直接自由吗? 还是说此时只会有一个thread自由 (抢到lock?),直到lock再度被释放? 程式码(Code): x = 0; y = 0; // t1, t2, t3, t4 consumer(){ pthread_mutex_lock(&mut); while (x <= y) { pthread_cond_wait(&cond, &mut); } y++; /* operate on x and y */ pthread_mutex_unlock(&mut); } // t5 producer(){ pthread_mutex_lock(&mut); /* modify x and y */ x += 2; if (x > y) { // pthread_cond_signal(&cond); pthread_cond_broadcast(&cond); } pthread_mutex_unlock(&mut); } 另外想请教一下,OS问题跟程式设计类的问题,能在这版问吗? --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.176.57.68 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1624440205.A.EB2.html
1F:→ F04E: mutex同时间只能被一个执行绪拥有, 先後顺序不保证 06/23 18:19
2F:→ worcdlo: 所以wait呼叫後应该是类似condition+lock的感觉? 06/23 18:43
3F:推 dces4212: 也可以发八卦板钓jserv回答 06/23 19:11
4F:→ F04E: 你原文里不就写了cond_wait会释放... 06/23 20:15
5F:→ worcdlo: 我回文的意思是释放之後,除了要等待cond,也要等待lock 06/23 20:32
6F:推 dces4212: 相关manpage可以参考一下,最有权威的文件。所有执行绪 06/24 02:12
7F:→ dces4212: 都会被叫醒(如果已经开始等待),但醒来後大家会竞争对 06/24 02:12
8F:→ dces4212: 应lock,只有抢赢的执行绪可以离开wait。关於你的留言 06/24 02:12
9F:→ dces4212: ,没错,wait里面确实会再次尝试抢lock。 06/24 02:12







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP