我试图从pthread内运行事件循环,但我遇到了一个问题,我似乎无法谷歌修复。基本上,它看起来像这样:
event_thread = pthread_create(&event_thread, NULL,
(void *) g_main_loop_run, (void *) event_loop);
printf("GOT HEREn");
pthread_create下面的消息永远不会打印,是否有一种方法可以"触发并忘记"一个线程?
嗯,我一发布这个就明白了,下面是我最后做的:
pthread_attr_t attr;
...
pthread_attr_init(&thread_attr);
pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_DETACHED);
event_thread = pthread_create(&event_thread, &thread_attr,
(void *) g_main_loop_run, (void *) event_loop);
你只需要设置线程状态为"detached"