当前位置: 首页 > news >正文 网站制作什么品牌好赵公口网站建设 news 2025/10/28 4:44:00 网站制作什么品牌好,赵公口网站建设,wordpress防止被镜像,网站开发 软文先看几个问题#xff0c;第三个问题可以先看代码然后再理解 Q1#xff1a;临界区在哪 A1: 队列中元素在「生产者生产#xff08;push#xff09;」和「消费者消费#xff08;pop#xff09;」时就是临界区 Q2#xff1a;同步操作在哪 A2: 很显然#xff0c;队列只有…先看几个问题第三个问题可以先看代码然后再理解 Q1临界区在哪 A1: 队列中元素在「生产者生产push」和「消费者消费pop」时就是临界区 Q2同步操作在哪 A2: 很显然队列只有在存在元素的前提下消费者才能消费队列中元素满假设有容量线程时只有生产者是不能生产的因此 生产者队列满了就应该通知消费者消费消费者线程发现队列为空就需要通知生产者线程先生产物品 Q3为什么消费者在 cv.wait(lck) 的条件是 while 而不是 if A3: cv.wait(lock) 本质上是阻塞的它会一直等待直到接收到 notify 或 notify_all 的通知。但是在某些情况下虽然没有收到通知但 cv.wait(lock) 可能会返回。这种情况被称为虚假唤醒spurious wakeup。 虚假唤醒是因为条件变量的实现方式以及底层操作系统和硬件的影响。条件变量的实现通常依赖于底层的线程库和操作系统它们可能在某些情况下引发虚假唤醒这是一种难以避免的情况。 因此为了编写健壮的多线程代码通常建议使用循环来检查条件就像在前面的示例中使用的 while (dataQueue.empty()) 一样。这样即使发生虚假唤醒线程也会再次检查条件确保只有在条件满足时才继续执行。 总之虽然 cv.wait(lock) 通常是阻塞的但在多线程环境中考虑到虚假唤醒是一种良好的编程实践以确保正确性和可靠性。 总结来说就是 cv.wait(lock)可能会在某些情况下如操作系统调度或硬件中断等自行返回。因此为了保险起见应该在一个循环中检查条件如示例中使用的 while (dataQueue.empty())以防止虚假唤醒导致的错误行为 完整代码如下 #include iostream #include queue #include thread #include memory #include condition_variableusing namespace std;std::mutex mtx; // 互斥锁实现线程之间的互斥操作 std::condition_variable cv; // 条件变量实现线程之间通信操作class Queue {public:void put(int val) {unique_lockstd::mutex lck(mtx);if (q.size() 10) {// 生产者队列满了就应该通知消费者消费// 生产者线程应该进入 #1 等待状态并且 #2 把 mtx 释放掉cv.wait(lck);}q.push(val);/*** brief 通知所有线程 notify_all()通知一个线程 notify_one()* 通知其他所有的线程我生产了一个物品你们赶紧地去消费* 其他线程得到了该通知就会从等待状态 阻塞状态 获取互斥锁之后才能继续执行*/cv.notify_all();cout 生产者 生产: val 号物品\n;}void get() {unique_lockstd::mutex lck(mtx);//!NOTE: 这里写成 while 是为了防止 cv.wait 被虚假唤醒while (q.empty()) {// 消费者线程发现队列为空就需要通知生产者线程先生产物品// #1 进入等待状态 #2 释放 mtxcv.wait(lck);}int val q.front();q.pop();// 通知其他所有的线程我消费了一个物品你们赶紧地去生产cv.notify_all();cout 消费者 消费: val 号物品\n;}private:queueint q; };void producer(Queue *q) // 生产者线程 {for (int i 1; i 10; i) {q-put(i);std::this_thread::sleep_for(std::chrono::microseconds(100));} }void consumer(Queue *q) // 消费者线程 {for (int i 1; i 10; i) {q-get();std::this_thread::sleep_for(std::chrono::microseconds(100));} }int main() {Queue q;std::thread t1(producer, q);std::thread t2(consumer, q);t1.join();t2.join();return 0; }参考 https://www.0xffffff.org/2016/02/11/38-c±concurrency/http://faq.0xffffff.org/question/2014/07/28/the-question-on-mutex-and-cond/ 源码地址链接 C 面试总结 CPPGuide 文章转载自: http://www.morning.mstbbs.com.gov.cn.mstbbs.com http://www.morning.rhqn.cn.gov.cn.rhqn.cn http://www.morning.qfkdt.cn.gov.cn.qfkdt.cn http://www.morning.bzlsf.cn.gov.cn.bzlsf.cn http://www.morning.pwxkn.cn.gov.cn.pwxkn.cn http://www.morning.mwcqz.cn.gov.cn.mwcqz.cn http://www.morning.tpnxr.cn.gov.cn.tpnxr.cn http://www.morning.gnzsd.cn.gov.cn.gnzsd.cn http://www.morning.jrdbq.cn.gov.cn.jrdbq.cn http://www.morning.ryxdr.cn.gov.cn.ryxdr.cn http://www.morning.kcyxs.cn.gov.cn.kcyxs.cn http://www.morning.rwjfs.cn.gov.cn.rwjfs.cn http://www.morning.jrrqs.cn.gov.cn.jrrqs.cn http://www.morning.pzwfw.cn.gov.cn.pzwfw.cn http://www.morning.tqrjj.cn.gov.cn.tqrjj.cn http://www.morning.sbrrf.cn.gov.cn.sbrrf.cn http://www.morning.lpcct.cn.gov.cn.lpcct.cn http://www.morning.xhxsr.cn.gov.cn.xhxsr.cn http://www.morning.dpsgq.cn.gov.cn.dpsgq.cn http://www.morning.nqnqz.cn.gov.cn.nqnqz.cn http://www.morning.wmfmj.cn.gov.cn.wmfmj.cn http://www.morning.gthgf.cn.gov.cn.gthgf.cn http://www.morning.sknbb.cn.gov.cn.sknbb.cn http://www.morning.shuangxizhongxin.cn.gov.cn.shuangxizhongxin.cn http://www.morning.spwm.cn.gov.cn.spwm.cn http://www.morning.pmdnx.cn.gov.cn.pmdnx.cn http://www.morning.mcwrg.cn.gov.cn.mcwrg.cn http://www.morning.lkthj.cn.gov.cn.lkthj.cn http://www.morning.syssdz.cn.gov.cn.syssdz.cn http://www.morning.xwgbr.cn.gov.cn.xwgbr.cn http://www.morning.mjxgs.cn.gov.cn.mjxgs.cn http://www.morning.rmfw.cn.gov.cn.rmfw.cn http://www.morning.pzqnj.cn.gov.cn.pzqnj.cn http://www.morning.nyqzz.cn.gov.cn.nyqzz.cn http://www.morning.wwklf.cn.gov.cn.wwklf.cn http://www.morning.jjmrx.cn.gov.cn.jjmrx.cn http://www.morning.yxwrr.cn.gov.cn.yxwrr.cn http://www.morning.txzqf.cn.gov.cn.txzqf.cn http://www.morning.nsppc.cn.gov.cn.nsppc.cn http://www.morning.ryfqj.cn.gov.cn.ryfqj.cn http://www.morning.gcspr.cn.gov.cn.gcspr.cn http://www.morning.qwnqt.cn.gov.cn.qwnqt.cn http://www.morning.wmqxt.cn.gov.cn.wmqxt.cn http://www.morning.ktcfl.cn.gov.cn.ktcfl.cn http://www.morning.bnpcq.cn.gov.cn.bnpcq.cn http://www.morning.crqbt.cn.gov.cn.crqbt.cn http://www.morning.kyhnl.cn.gov.cn.kyhnl.cn http://www.morning.qhrlb.cn.gov.cn.qhrlb.cn http://www.morning.cwlxs.cn.gov.cn.cwlxs.cn http://www.morning.mxftp.com.gov.cn.mxftp.com http://www.morning.kjdxh.cn.gov.cn.kjdxh.cn http://www.morning.tgwfn.cn.gov.cn.tgwfn.cn http://www.morning.pfgln.cn.gov.cn.pfgln.cn http://www.morning.hdqqr.cn.gov.cn.hdqqr.cn http://www.morning.ltbwq.cn.gov.cn.ltbwq.cn http://www.morning.whnps.cn.gov.cn.whnps.cn http://www.morning.yhljc.cn.gov.cn.yhljc.cn http://www.morning.kabaifu.com.gov.cn.kabaifu.com http://www.morning.rnrwq.cn.gov.cn.rnrwq.cn http://www.morning.qqbjt.cn.gov.cn.qqbjt.cn http://www.morning.mcjp.cn.gov.cn.mcjp.cn http://www.morning.mhxlb.cn.gov.cn.mhxlb.cn http://www.morning.ckctj.cn.gov.cn.ckctj.cn http://www.morning.dglszn.com.gov.cn.dglszn.com http://www.morning.bwkzn.cn.gov.cn.bwkzn.cn http://www.morning.lwtfx.cn.gov.cn.lwtfx.cn http://www.morning.nfbkp.cn.gov.cn.nfbkp.cn http://www.morning.kkhf.cn.gov.cn.kkhf.cn http://www.morning.ljzqb.cn.gov.cn.ljzqb.cn http://www.morning.fygbq.cn.gov.cn.fygbq.cn http://www.morning.nbhft.cn.gov.cn.nbhft.cn http://www.morning.tpbhf.cn.gov.cn.tpbhf.cn http://www.morning.nrtpb.cn.gov.cn.nrtpb.cn http://www.morning.dongyinet.cn.gov.cn.dongyinet.cn http://www.morning.qytpt.cn.gov.cn.qytpt.cn http://www.morning.lhgqc.cn.gov.cn.lhgqc.cn http://www.morning.lhyhx.cn.gov.cn.lhyhx.cn http://www.morning.mrpqg.cn.gov.cn.mrpqg.cn http://www.morning.mrtdq.cn.gov.cn.mrtdq.cn http://www.morning.swyr.cn.gov.cn.swyr.cn 查看全文 http://www.tj-hxxt.cn/news/255741.html 相关文章: 租二级目录做网站wordpress 设置评论 怎么用服务器做局域网网站香精论坛 网站用什么开发东莞金融网站建设 wordpress做网站教程互联网公司市值 校园网站建设 方案论证h5做网站用什么框架 网站改标题关键词描述系统优化的例子 家居企业网站建设平台池州市建设工程质量安全监督局网站 手机怎么网站模板wordpress文章模板 织梦视频网站源码能免费做微信群推广的网站 网站建设公司电话咨询关键词优化收费标准 jquery网站开发实例哪里教做网站的 电子商务网站建设课设网站网页开发用到的技术 网站登录界面源码深圳建网站价格 百度站长反馈中心微信自己开发小程序 uc官方网站开发者中心苏州木渎做网站 如何做好网站需求分析房地产企业网站建设 嘉兴市住房和城乡建设局网站pc端网页设计模板 高性能网站建设进阶...国家建设部标准官方网站 镇江市建设工程质量监督局网站如何编写一个软件 模板建网站多少钱南宁区建设银行招聘网站 网页制作免费的素材网站免费的网页模版 微网站开发需求承接各类网站建设 福州网站建设哪家公司好哪些公司的网站做的漂亮 手机版景区网站龙华企业网站建设 企业网站做优化客户网站开发全流程图 重庆seo整站优化服务手机购物网站模板下载 网站推广线上推广大城网站优化 吕梁做网站公司广州番禺区严格控制人员流动 打开部分网站很慢重庆乐尚装饰工程有限公司 文化网站建设论文电信网站开发语言主要用什么