peakzhang 发表于 2007-12-19 21:42:00

关于ACE创建线程wait的问题

继承ACE_Task类可以实现多线程的目的,activate即可启动线程,activate默认的参数为THR_NEW_LWP | THR_JOINABLE,对于THR_JOINABLE的线程需要进行“合并”,我有几点不明白:
1)是不是只要调用activate启动的线程,都要调用wait进行合并?我在主线程中调用ACE_Thread_Manager::instance()->wait(),是不是创建的子线程不需要wait来合并?
2)如果不这么做线程退出是不是有资源泄露?
3)假如创建的子线程永久执行,是否还有资源泄露?
还请DX们多多指点,本人菜鸟一个。
谢谢了。

peakzhang 发表于 2007-12-19 21:42:05

THR_NEW_LWP | THR_JOINABLE 在windows下,两个标记完全一样,没区别。

peakzhang 发表于 2007-12-19 21:42:14

只要调用activate启动的线程,都要调用wait进行合并,这本来就符合一开一关的代码要求

不要用ACE_Thread_Manager::instance()->wait(),导致代码可读性不高

peakzhang 发表于 2007-12-19 21:42:22

谢谢2位DX答复,不过还有些不明白,对于创建的子线程,如果调用wait线程则会被挂起,后面的代码就不会继续执行,有没有办法不让程序阻塞在此?

peakzhang 发表于 2007-12-19 21:42:28

wait就是等待activate启动的线程执行完。

你可以开个线程activate。
页: [1]
查看完整版本: 关于ACE创建线程wait的问题