我将 Ubuntu 从 23.04 升级到了 23.10
版本 23.10 (Mantic Minotaur) 64 位
内核 Linux 6.5.0-17-通用 x86_64
Python3 版本 3.11.6
自升级以来,任何使用 deamon = True 的线程的 Python 程序在 Python 脚本完成后都不会再终止线程。
以下是一个简单的脚本来证明这一点:
import threading as th
def thread_method():
input()
thread_test = th.Thread(target=thread_method, args=(), name='daemon_exit_test', daemon=True)
thread_test.start()
print(thread_test.isDaemon())
print('print this then exit')
这将创建一个守护线程,并使其等待输入(),即回车键。
过去,由于标志 deamon=True,一旦到达脚本末尾,它就会终止线程。现在它不会这样表现,而是保持线程打开,可以通过按 Enter 键接受输入 () 来手动结束线程。
我在 python 3.9 和 python 3.12 环境中尝试过,同样的问题。
Ubuntu 23.10 中是否有一个设置可以使其正常工作?也许是内核切换或升级?