ACE_Thread_Manager

ace是对若干东西的封装,所以从看问题本质的角度来说,了解ACE先要熟悉被它封装的东西。thread管理也是如此。

开辟一个线程在不同的系统上有不同的方法,而且这个线程的代价也不尽一样,但是肯定有些东西是共性的,就譬如ACE做thead_manager的接口的时候定义的那些参数一样,往常复杂不易使用的步骤组合被ACE加以封装。

其实直到目前为止我也一直认为thread manager是为了ace_task服务了。

关于这个类本身,我觉得用代码更容易把问题表达清楚一些:

#include  < ACE / Thread_Manager.h >
#include 
< ace / ACE.h >
#pragma  comment(lib,"aced.lib")

ACE_THR_FUNC_RETURN    svc(
void *  arg)
{
    
int    cnt    = 1000;
    
for(int i = 0;i < cnt;++i)
    
{
        cout
<<"now :"<<i<<endl;
    }

    
return    NULL;
}



int  _tmain( int  argc, _TCHAR *  argv[])
{
    ACE::init();

    ACE_Thread_Manager::instance()
->spawn(svc,NULL);
    ACE_Thread_Manager::instance()
->wait();
    ACE::fini();
    
return 0;
}

 我在这里帖了很多东西。因为有些东西没有多少人提起,却很重要。

还记得使用的时候要加init和fini吧,如果你认为那只是封装了wsastartup和wsaclearup,那就错了。上边的代码,如果你没有初始化,一样会出问题,而且不给你任何提示,除了系统的报错对话框,而你不知道问题出在哪儿。

帖这段完整代码,提示在使用ace的时候要记得它的特有初始化。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值