使用ACE时要记得初始化

这几天把c++网络编程随便翻了一遍,发现写ace程序太难了。

比如线程的创建,遇到这样一个问题一直没有解决:

#include <ace/Thread_Manager.h>
#include <ace/Get_Opt.h>
#include <ace/OS.h>
static ACE_THR_FUNC_RETURN taskone(void*)
{
    ACE_DEBUG((LM_DEBUG,"Thread:(%t)started Task one! /n"));
    ACE_OS::sleep(2);
    ACE_DEBUG((LM_DEBUG,"Thread:(%t)finished Task one!/n"));
    return 0;
}
static ACE_THR_FUNC_RETURN tasktwo(void*)
{
    ACE_DEBUG((LM_DEBUG,"Thread:(%t)started Task two!/n"));
    ACE_OS::sleep(1);
    ACE_DEBUG((LM_DEBUG,"Thread:(%t)finished Task two!/n"));
    return 0;
}
int wmain()
{
    ACE_Thread_Manager::instance()->spawn(taskone,0);
    ACE_Thread_Manager::instance()->spawn(tasktwo,0);

    ACE_OS::sleep(10);
    return 0;
}
死活搞不清这段程序为什么会引起程序崩溃。

 

想一想还是boost的线程比较简单灵活,但是没有ace的这么强大

 

后来才发现少了ACE::init();

int wmain()

{
    ACE::init();

 

    ACE_Thread_Manager::instance()->spawn(taskone,0);
    ACE_Thread_Manager::instance()->spawn(tasktwo,0);


    ACE_OS::sleep(10);

 

   ACE::fini();
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值