Менеджер потоков ACE не может вызвать функцию
Я хочу создать поток с ACE_thread_manager, нет ошибки при отладке. но результат не правильный. Функция не работает; код как это:
#include "ace/OS.h"
#include "ace/Log_Msg.h"
#include "ace/Thread_Manager.h"
#include <iostream>
void thread_start(void* arg)
{
std::cout << "Running thread..\n";
}
int main(int argc, char *argv[])
{
ACE_Thread_Manager::instance()->spawn(ACE_THR_FUNC(thread_start), 0, THR_NEW_LWP);
return 0;
}
эта демонстрация должна напечатать "Running thread..", но когда я отлаживаю ее, она ничего не печатает. Эти китайские означают "Пожалуйста, нажмите любую клавишу, чтобы продолжить".
1 ответ
Решение
Вы должны ждать в своей основной части, пока ваши рабочие потоки не закончатся. Как вы говорите, вы должны добавить следующую строку перед возвратом в main.
ACE_Thread_Manager::instance()->wait();