【发布时间】:2013-03-16 08:59:03
【问题描述】:
我希望能够启动一个 pthread 并且它会保持活动状态 即使 main() 已经完成。
我无权访问 main()。
正常的行为是,如果一个线程被启动并且没有从 main() 中“join_thread”,它将在 main 完成运行时终止。
在java中,默认是被调用的线程将保持活动状态。只有当所有线程都完成时,该进程才会终止。不需要显式调用 java "join_thread"。
【问题讨论】:
-
您的描述与 IMO 有点矛盾。一方面您说您希望
main隐式加入它已启动的其他线程(即等待这些线程终止),但随后您又说您“希望此线程在主要到达后继续运行到最后一行”。那么它是哪一个? -
我想要的行为是,当启动一个线程时,它不会因为 main 到达它的结尾而终止。我不介意如何实现这一点,因此“加入”或保持线程活着对我有好处。
-
在这种情况下,您应该重新表述您的问题,以使其更清楚您想要什么。现在可以解释为您希望从
main返回始终加入您的程序创建的所有线程,而无需显式调用pthread_join。但根据您的评论,您真正想要的是退出主线程,同时让其他线程保持运行(@Thrustmaster 在他的回答中解释了如何做)。