找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3858|回复: 4

求教:ACE_Thread_Manager创建线程引起程序崩溃

[复制链接]
发表于 2010-8-12 09:53:35 | 显示全部楼层 |阅读模式
#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;
}

ACE_OS::sleep(10);//加上这句话之后程序就会崩溃
在这里用getchar 或者ACE_Thread_Manager::instance()->join也会引起程序崩溃?

我是ace初学者,请教各位大侠这是怎么回事???
 楼主| 发表于 2010-8-12 09:58:21 | 显示全部楼层
[img][/img]
如上图,程序会崩溃

在ace5.5和ace8.1上都试过

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?用户注册

×
发表于 2010-8-12 11:00:08 | 显示全部楼层
感觉没正确初始化,要调用ACE::init,另外涉及线程的,退出要有同步机制。
发表于 2010-8-12 13:38:41 | 显示全部楼层
int wmain()定义成 int ACE_TAMIN(int argc, char *argv[])格式,使用ACE_Thread_Manager::instance()->wait() 来等待,一般不会有问题的
 楼主| 发表于 2010-8-12 16:34:47 | 显示全部楼层
回复 3# winston

发现问题了就是没有初始化,初始化后一切正常
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

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

GMT+8, 2024-5-18 14:28 , Processed in 0.016761 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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