gpt4 book ai didi

multithreading - 显式加入 python 线程?

转载 作者:太空宇宙 更新时间:2023-11-04 06:30:49 25 4
gpt4 key购买 nike

我需要在 python 程序中启动一些线程。线程执行可能需要很长时间的后台任务,所以我不想阻塞等待任务发生的主线程。

Python 提供了使用 Thread.join() 和 Thread.isAlive() 来“获取”线程的能力。但我实际上并不关心找出线程何时结束。我满足于启动线程,让它做它的事情,再也不用担心了。

问题是,我是否需要保留对我启动的 Thread 对象的引用,以便我以后可以 join() 它们?或者我可以让对 Thread 对象的引用超出范围而不用担心吗?在这种情况下是否有“正确”的做法?

最佳答案

您不必显式地加入线程——只需确保它们不是“守护进程”(将它们的daemon 属性保留为默认值, False)所以他们会保持进程事件直到他们全部完成(如果你让你的线程守护进程,那么你必须确保主线程不会终止直到所有相关线程都完成,否则线程将被操作系统杀死)。

我认为正确的事情是最简单的事情:忘掉你的“后台线程”,让它们成为非守护进程(毕竟这是它们的默认状态)。

关于multithreading - 显式加入 python 线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3088449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com