首页 > 代码库 > 基于ACE的c++线程封装
基于ACE的c++线程封装
1. 基本需求
1) 一个基类,其某个方法代表一个线程的生命运行周期。之后通过继承自这个基类来实现个性化线程类;
2) 具备类似QObject的定时器设置功能;
3) 提供在线程对象中同步和异步执行方法的功能;
这三个基本需求,可以满足C++应用编程对线程使用的主要场景。
2.实现方式
要实现上述基本需求,可以全部使用OS的原生接口,但这样比较复杂且封装质量不如直接使用已有的一些框架。这里以ACE的已有封装为例,实现满足上述基本需求的方案:
说明:
1)Task类通过start方法启动线程,线程生命期在svc方法中,里面运行事件循环,这里使用的是ACE_Task_Base的线程框架。
2)定时器使用的是ACE_Reactor的框架,通过其schedule_timer设置定时参数。
3)异步方法由TaskControl的队列进行管理,Monitor类封装ACE_Reactor对象和事件回调接口,通过Monitor对象的事件通知来出发回调,根据上图关系,回调的具体执行是在Task对象的线程中。
基于ACE的c++线程封装
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。