【发布时间】:2013-01-26 10:25:09
【问题描述】:
我正在尝试使用本机 api 在 c++ 中为 Windows 创建一个守护线程,但我似乎找不到对守护线程的任何引用。有没有人有与此相关的文档的链接,或者在 Windows 上有不同的术语吗? c++中如何在windows上创建守护线程?
【问题讨论】:
-
什么是守护线程? (例如,python 中有这样的东西,但它是特定于 python 的)。是退出时不想加入的那个吗?那就别加入了。
-
我认为标准定义是只有当所有守护线程都返回时,进程才应该退出。
-
对于python,情况正好相反:“当所有非守护线程返回时”。对于 Windows 上的 C,线程本身没有这种区别(与 pthreads 不同,如果有后台线程,从
main返回不会终止应用程序,但ExitProcess、_exit和exit会这样做)。 -
“只有当所有守护线程都返回时,一个进程才应该退出”windows中的每个线程都是这样的。除非您通过api明确告诉它(提到了ExitProcess),否则进程不会退出,直到其中的每个线程都消失了。我认为大多数操作系统都是这种情况?
-
@chacham15 我从
main返回时出错了,它相当于Windows 上的exit。和 POSIX 中一样,main 中的_endthread(0)不会杀死其他线程。
标签: c++ windows multithreading