找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4828|回复: 4

关于ACE创建线程wait的问题

[复制链接]
发表于 2007-12-19 21:42:00 | 显示全部楼层 |阅读模式
继承ACE_Task类可以实现多线程的目的,activate即可启动线程,activate默认的参数为THR_NEW_LWP | THR_JOINABLE,对于THR_JOINABLE的线程需要进行“合并”,我有几点不明白:
1)是不是只要调用activate启动的线程,都要调用wait进行合并?我在主线程中调用ACE_Thread_Manager::instance()->wait(),是不是创建的子线程不需要wait来合并?
2)如果不这么做线程退出是不是有资源泄露?
3)假如创建的子线程永久执行,是否还有资源泄露?
还请DX们多多指点,本人菜鸟一个。
谢谢了。
 楼主| 发表于 2007-12-19 21:42:05 | 显示全部楼层
THR_NEW_LWP | THR_JOINABLE 在windows下,两个标记完全一样,没区别。
 楼主| 发表于 2007-12-19 21:42:14 | 显示全部楼层
只要调用activate启动的线程,都要调用wait进行合并,这本来就符合一开一关的代码要求

不要用ACE_Thread_Manager::instance()->wait(),导致代码可读性不高
 楼主| 发表于 2007-12-19 21:42:22 | 显示全部楼层
谢谢2位DX答复,不过还有些不明白,对于创建的子线程,如果调用wait线程则会被挂起,后面的代码就不会继续执行,有没有办法不让程序阻塞在此?
 楼主| 发表于 2007-12-19 21:42:28 | 显示全部楼层
wait就是等待activate启动的线程执行完。

你可以开个线程activate。
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-5-20 10:20 , Processed in 3.085900 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表