- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ACE基本的多线程编程(Basic Multithreaded Programming)从ACE_Task_Base或ACE_Task派生你的线程对象,重载virtual int svc (void);虚函数,那就是线程的入口函数。#include ace/OS.h#include ace/Task.h
class HA_CommandHandler : public ACE_Task_Base{public:??? virtual int svc(void)??? {??????? ACE_DEBUG((LM_DEBUG,?????????????????? ACE_TEXT((%t) Handler Thread running\n)));??????? ACE_OS::sleep(4);??????? return 0;??? }};
int ACE_TMAIN(int, ACE_TCHAR *[]){??? ACE_DEBUG((LM_DEBUG,?????????????? ACE_TEXT((%t) Main Thread running\n)));
??? HA_CommandHandler handler;??? int result = handler.activate();??? ACE_ASSERT(result == 0);
??? handler.wait();??? return 0;}
在激活线程(activate()方法)之后,主线程会调用处理器对象上的wait()方法,等待其线程完成,然后在继续执行,并退出main()函数。
使用线程互斥体ACE_Thread_Mutex如果成功获得互斥体,进行获取的线程(acquire())继续向前执行;否则它就会阻塞,直到该互斥体的持有者释放它(release())为止。#include ace/OS.h#include ace/Log_Msg.h#include ace/Task.h#include ace/Thread_Mutex.h
class HA_Device_Repository{public:??? HA_Device_Repository()??? { }
??? void update_device(int device_id)??? {??????? //使用守卫??????? //ACE_GUARD(ACE_Thread_Mutex, mon, mutex_);??????? ACE_GuardACE_Thread_Mutex guard(this-mutex_);
??????? //mutex_.acquire();??????? ACE_DEBUG((LM_DEBUG, ?????????????????? ACE_TEXT((%t) Updating device %d\n),?????????????????? device_id));??????? ACE_OS::sleep(1);??????? //mutex_.release();??? }private:??? ACE_Thread_Mutex mutex_;};class HA_CommandHandler : public ACE_Task_Base{public:??? enum {NUM_USES = 10};
??? HA_CommandHandler(HA_Device_Repository rep) : rep_(rep)??? { }
??? virtual int svc(void)??? {??????? ACE_DEBUG((LM_DEBUG,?????????????????? ACE_TEXT((%t) Handler Thread running\n)));??????? for (int i=0; i NUM_USES; i++)??????????? this-rep_.update_device(i);??????? return 0;??? }
private:??? HA_Device_Repository rep_;};
int ACE_TMAIN(int, ACE_TCHAR *[]){??? HA_Device_Repository rep;??? HA_CommandHandler handler1(rep);??? HA_CommandHandler handler2(rep);??? handler1.activate();??? handler2.activate();
??? hand
您可能关注的文档
- SEC Guard使用说明书.docx
- 实用英语语法讲稿Lecture 16-18.doc
- RC-GUARD工作原理简介.doc
- CKEditor使用教程.doc
- Oracle_Data_Guard安装配置与操作维护使用指南.docx
- 中投保2011年主体评级.doc
- 企业集团内部担保法律问题探析.docx
- 人教版九年级英语--Vocabulary Index.doc
- Data Guard 理论知识.docx
- 2010ACM程序设计亚洲域哈尔滨初赛试题.doc
- 4.1 陆地水体及其关系 课件高二上学期地理中图版(2019)选择性必修一.pptx
- 混凝土结构与砌体结构设计习题集 .pdf
- 统编版语文四年级下册 22.古诗三首 课件(共50张PPT).pptx
- 青海2024行测笔试真题及答案 .pdf
- 2.1 充分发挥市场在资源配置中的决定性作用 课件-高中政治统编版必修二经济与社会.pptx
- 27.巨人的花园 课件(共58张PPT).pptx
- 统编版语文一年级下册5 树和喜鹊 第1课时 课件(共37张PPT).pptx
- 2.1 充分发挥市场在资源配置中的决定性作用 课件政治一轮复习统编版必修二经济与社会.pptx
- 贵港市平南县2024届小升初考试语文试卷含答案 .pdf
- 小学期末考试质量分析 .pdf
最近下载
- 2025年高考地理二轮复习非选择题强化训练(课件).pptx VIP
- (二模)2025年广州市普通高中毕业班综合测试(二)数学试卷(含答案详解).pdf
- 14J938 抗爆、泄爆图集标准.docx VIP
- 降低CRRT治疗非计划下机率.pptx VIP
- 《中国心力衰竭诊断和治疗指南2024》解读(下).pptx
- 《预检分诊》课件.pptx VIP
- 2024年河南省政务服务办事员职业技能竞赛考试题库-下(判断、简答题汇总).docx
- 2025年部编版语文六年级毕业复习知识点.pdf VIP
- 2025年政务服务办事员技能大赛理论考试题库600题(含答案).docx
- 14J938抗爆泄爆图集标准.docx VIP
文档评论(0)