求教:ACE_Thread_Manager创建线程引起程序崩溃
#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初学者,请教各位大侠这是怎么回事???
如上图,程序会崩溃
在ace5.5和ace8.1上都试过 感觉没正确初始化,要调用ACE::init,另外涉及线程的,退出要有同步机制。 int wmain()定义成 int ACE_TAMIN(int argc, char *argv[])格式,使用ACE_Thread_Manager::instance()->wait() 来等待,一般不会有问题的 回复 3# winston
发现问题了就是没有初始化,初始化后一切正常
页:
[1]