Qt开发多线程同步
一、多线程间的同步
1、多线程编程的本质
(1)、 并发性 是多线程编程的本质
(2)、在 宏观 上,所有线程并行执行
(3)、多个线程间 相互独立,互不干涉
2、特殊情况下,多线程存在依赖
煮菜和煮饭这两个线程结束后,才能进行吃饭的线程
3、同步的概念
(1)、在特殊情况下,控制多线程间的 相对执行顺序
(2)、QThread类 支持线程间的同步
#include #include #include /* * sum(n) = 1 + 2 + 3 + ... + n * sum(1000) ==>分解成3个任务 * [1, 1000] = [1, 300] [301, 600] [601, 1000] */ class Calculator : public QThread { protected: int m_begin; int m_end; int m_result; void run() { qDebug() << objectName() << " : run() begin"; for(int i=m_begin; i<=m_end; i++) { m_result += i; msleep(10); } qDebug() << objectName() << " : run() end"; } public: Calculator(int begin, int end) { m_begin = begin; m_end = end; m_result = 0; } //模拟串行解决方案 void work() { run(); } int getResult() { return m_result; } }; int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); qDebug() << "main begin"; Calculator cal1(1, 300); //任务1 Calculator cal2(301, 600); //任务2 Calculator cal3(601, 1000); //任务3 cal1.setObjectName("cal1"); cal2.setObjectName("cal2"); cal3.setObjectName("cal3"); //模拟串行解决方案(将run函数作为一般的成员函数调用) //cal1.work(); //先完成任务1 //cal2.work(); //再完成任务2 //cal3.work(); //最后完成任务3 //int result = cal1.getResult() + cal2.getResult() + cal3.getResult(); //qDebug() << "result = " << result; //并行解决方案(利用多线程解决) cal1.start(); //启动线程1 cal2.start(); //启动线程2 cal3.start(); //启动线程3 cal1.wait(); //等待线程1结束 cal2.wait(); //等待线程2结束 cal3.wait(); //等待线程3结束 int result = cal1.getResult() + cal2.getResult() + cal3.getResult();//必须等三个子线程结束后再进行结果的相加,否则将出现错误 qDebug() << "result = " << result; qDebug() << "main end"; return a.exec(); }二、小结
(1)、在默认情况下,各个线程 独立存在,并行执行
(2)、 在特殊情况下 ,多线程的执行在时序上存在依赖
(3)、QThread类直接支持 线程间的同步 ,(wait()成员函数)
(4)、wait()停止当前线程的执行, 等待目标线程执行结束
【领QT开发教程 学习资料,点击下方链接免费领取↓↓ ,先码住不迷路~】
「链接」
近3天北向资金最大买入100股名单来了更新日期8月27日近3天北向资金净买入最多的100股序号代码名称最新价北向净流入市值增幅占流通股比所属板块1hr300750hr宁德时代506。7811。20亿1。231。02电池
美股大跌之后的走向简析昨晚,全球最令人瞩目的人,非鲍威尔莫属!美联储主席在杰克逊霍尔年会上,短短8分钟的讲话,令美国市场暴跌。他讲话的内容是什么,竟然有如此巨大的威力呢?综合媒体的报道,主要是,不可过早
除了赚钱,快手还在想什么?深燃(shenrancaijing)原创作者李秋涵编辑魏佳每隔三个月,在财报电话会上向投资者汇报公司业绩,已经成为快手CEO程一笑的例行工作。自2021年10月29日接任快手CEO
美股大跌A股还能买吗?看完直接给你答案昨天鲍威尔发表财经演讲,整体上偏鹰派,意思上短期还要加息,长期看明年不降息,原来说的是明年降息,结果出人意料继续收割全球令人担尤,造成全球股民恐惶美股大跌。不过对我国股市影响有限,
全球经济迎来至暗时刻全球都要陷入经济衰退,在美国和欧洲,在面对高通货膨胀问题都束手无策。我们中国也因为口罩和人口红利原因,所以全球的这些主要经济火车头,全部都熄火了。今年美国美联储继续大幅度加息,到今
徐自发叛逃格力逆国产化选择有违中国自主创新大势最近,格力河北地区原总经销商徐叛逃格力投奔至飞利浦一事引发业界和舆论关注,有媒体报道称,徐自发通过马雪丽代其持有上海飞荔科技发展有限公司70股份,是背后真正的实控人,也是目前飞利浦
历史罕见!美元加息全球割韭菜,中国降息强势应对当地时间8月26日,美联储主席鲍威尔在杰克逊霍尔全球央行年会上表示,美联储当前的首要任务是将通胀降至2的目标水平,在9月的货币政策会议上,美联储可能再次大幅加息。今年以来美联储已经
00年荷兰宣布性交易合法化,22年过去,如今的国家什么样子?1hr几个世纪以来,传统的强国和霸主,最鲜明的特点就是称霸海洋,只有称霸海洋才是实力的象征。然而有这样一个国家,虽然面积不大,相较于我国的海南岛大一点而已,但却是曾经最强的海上霸主
游族网络上半年实现营收10。24亿元研发投入2。37亿元本报记者李婷8月28日晚间,游族网络披露2022年半年度报告,报告期内,公司实现营业收入10。24亿元归母净利润为7094。13万元。其中公司不考虑汇兑损益的扣非净利润为9712。
森林狼发推再引热议,篮网开启疯狂抢人计划,美媒爆8换1交易北京时间8月31日,自由市场正在如约而至的持续发酵中,各支球队都在跃跃欲试,地震级交易以及顶薪续约合同此起彼伏,联盟也在不断上演着抢人大战,为下赛季的球队崛起保驾护航。森林狼发推再
支付宝内测信用卡取现是一个什么信号支付宝测试新功能,没有借呗资格的用户,也有办法享受信贷服务了。撰文张浩东出品支付百科近日,支付宝测试信用卡取现功能,与在银行App中进行信用卡取现类似,对于习惯使用支付宝的用户而言