社区
C++ 语言
帖子详情
ACE_Task中的getq听说取不到会阻塞,那么怎么终止这个阻塞的线程?
qhgary
2007-03-17 02:38:01
比如某个ACE_Task的继承类实现了一个自己的svc,在这个svc里面会不断的check是否有消息,所以会在一个while(1)的循环里面getq.但是这样好像有一个问题,就是这个线程如何终止呢?如果消息队列为空,getq取不到而阻塞,又如何终止这个线程呢?
...全文
1165
5
打赏
收藏
ACE_Task中的getq听说取不到会阻塞,那么怎么终止这个阻塞的线程?
比如某个ACE_Task的继承类实现了一个自己的svc,在这个svc里面会不断的check是否有消息,所以会在一个while(1)的循环里面getq.但是这样好像有一个问题,就是这个线程如何终止呢?如果消息队列为空,getq取不到而阻塞,又如何终止这个线程呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qhgary
2007-03-17
打赏
举报
回复
还有putq的阻塞怎么处理呢?
qhgary
2007-03-17
打赏
举报
回复
另外:
返回-1后, 如何判断消息队列的状态是否为ACE_Message_Queue_Base::DEACTIVATED?
如果返回-1,但是消息队列不为这个值那又说明什么呢?
qhgary
2007-03-17
打赏
举报
回复
谢谢,还有一个相关的问题,对于ace_message_block,是不是里面什么类型的数据都可以放,只要用char*强制转换一下就可以了?取出来的时候通过什么呢?base()?还是rd_ptr()?
另外,如果我看见默认的支持有一些MB_...的消息,这些消息都是针对线程本身的么?如果我既想让这些消息中有线程控制相关,又想让另外一部分消息能够携带数据,怎么做?
对于ace_message_data的数据需要手工delete么?还是在ace_message_block上调用release以后,会自动释放所有空间?
foochow
2007-03-17
打赏
举报
回复
返回-1后判断消息队列的状态是否为ACE_Message_Queue_Base::DEACTIVATED,然后return
foochow
2007-03-17
打赏
举报
回复
msg_queue()->deactivate();
改变消息队列的状态,getq返回-1
ACE
_
Task
介绍(生产者/消费者)v3.0
ACE
_
Task
是
ACE
中
的任务或主动对象“处理结构”的基类。
ACE
使用此类来实现主动对象模式。所有希望成为“主动对象”的对象都必须由此类派生。同时可将它看作是更高级的、更为面向对象的
线程
。
ACE
_
Task
处理的是对象,...
ACE
_
Task
正常退出及其他
1.
ACE
_
Task
封装了任务,每个任务都含有一或多个
线程
,以及一个底层消息队列。各个任务通过这些消息队列进行通信。 其主要成员如下: open():初始化资源 close():释放资源 activate():启动
线程
,可指定
线程
的...
ACE
_
Task
介绍(生产者/消费者)
ACE
_
Task
是
ACE
中
的任务或主动对象“处理结构”的基类。
ACE
使用此类来实现主动对象模式。所有希望成为“主动对象”的对象都必须由此类派生。同时可将它看作是更高级的、更为面向对象的
线程
。
ACE
_
Task
处理的是对象...
ACE
_
Task
(任务)
每个
ACE
_
Task
对象都包含一个或多个
线程
和一个底层的消息队列. 任务之间可以是通过这些消息队列进行通信. (用putq()来插入用getq()来提
取
.) 它做好了框架. 我们只要在派生的实际任务类
中
提供那些用以回调的模板...
ACE
_
Task
自然退出的问题
最近解决了以前遗留的
ACE
问题(原来的应用退出时实际上各子
线程
不是自然退出,而是因为进程
终止
而强制退出的),高兴!特此记录一下。我们的应用使用反应器框架模式,反应器框架通过任务的消息队列和具体处理任务解耦...
C++ 语言
64,648
社区成员
250,503
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章