c++11多线程编程(六):事件处理

本文介绍了C++11多线程编程中的事件处理,通过实例说明任务之间的依赖关系和并行执行的可能性。线程1等待特定事件发生,如数据获取完成,线程2并行获取数据,完成后通过事件通知线程1。文章探讨了通过全局变量和mutex锁实现线程间的同步机制。
摘要由CSDN通过智能技术生成
本节讨论在多线程环境下的事件处理。
有时,线程需要等待某事件发生,比如一个条件变为true,或者某任务被另一个线程完成。
例如,我们创建一个基于网络的应用程序,处理如下的任务:
1、与处理器进行一些握手操作;
2、从xml文件load数据;
3、处理从xml文件load的数据.

可以发现,任务1不依赖其他的任务,而任务3则依赖于任务2,这意味着任务1和任务2可以由不同的线程并行运行,以提升程序性能。


因此,让我们将其分解成一个多线程的应用程序
现在,它包含2个线程,线程1的任务是:
·与服务器进行握手操作
·等待线程2从xml获取的数据
·处理从xml获取的数据


线程2的任务是:
·从xml获取数据
·通知另一个线程,即等待消息



在上图中,线程1处理一些操作,然后等待event发生,这event是 “数据是否成功获取”,一旦线程1收到该event,那么它将对数据进行处理。
当线程1忙于处理握手机制时,线程2并行地获取数据。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值