Multithreading 当其父线程死亡时,线程是否死亡?

Multithreading 当其父线程死亡时,线程是否死亡?,multithreading,Multithreading,当我杀死启动线程的程序时,线程会死吗 可能与我的英语有关,但我在这里找不到: 是,当一个进程被终止时(例如通过发送),它的所有线程都会被终止 值得注意的是,这不是特定于Python的。似乎是这样的,并且它指出: 当主线程退出时,由系统定义其他线程是否存活。在使用本机线程实现的SGI IRIX上,它们仍然存在。在大多数其他系统上,它们在不执行try的情况下被杀死。。。最后是子句或正在执行的对象析构函数 因此,这是Python没有定义的东西——它可以根据特定的操作系统而有所不同。它不可能存在,因为它

当我杀死启动线程的程序时,线程会死吗

可能与我的英语有关,但我在这里找不到:

是,当一个进程被终止时(例如通过发送),它的所有线程都会被终止

值得注意的是,这不是特定于Python的。

似乎是这样的,并且它指出:

当主线程退出时,由系统定义其他线程是否存活。在使用本机线程实现的SGI IRIX上,它们仍然存在。在大多数其他系统上,它们在不执行try的情况下被杀死。。。最后是子句或正在执行的对象析构函数


因此,这是Python没有定义的东西——它可以根据特定的操作系统而有所不同。

它不可能存在,因为它与Python没有任何关系。当您终止程序/进程时,操作系统将释放所有与之相关的资源。您应该参考核心文档,其中说明
当主线程退出时,其他线程是否存活是系统定义的。在使用本机线程实现的SGI IRIX上,它们仍然存在。在大多数其他系统上,它们在不执行try的情况下被杀死。。。最后是子句或正在执行的对象析构函数。
非常感谢georg,作为旁注。这不是Python特有的,但一般来说,如果父线程关闭,那么它的线程也会关闭。至于叉子,这完全是另一个问题。对不起,那是垃圾。只有进程的初始线程是特殊的,所有其他线程都是相同的,线程之间尤其没有父子关系。此外,正如上面提到的@georg,即使初始线程终止时的行为在系统中也不一致。如果你想说终止一个进程意味着杀死它的所有线程,那是真的,但那是另一回事。@UlrichEckhardt:等等,什么是垃圾?我的答案是,杀死一个进程(例如,通过发送一个消息),它的所有线程都会被终止。其中哪一部分是有争议的?@UlrichEckhardt:还要注意的是,问题和答案都没有提到线程之间的父/子关系。这个问题显然是在谈论一个线程及其所属的过程(用一些模糊的术语)。一般来说,这是错误的。它是特定于Linux的,只是在Windows上偶然准确,而问题是关于Python的。从Python的角度来看,它是特定于操作系统的。无法保证它将始终像在Linux上一样工作。