繁体   English   中英

Python暂停线程执行

[英]Python pause thread execution

有没有办法永久地“暂停”应用程序的主要python线程?

我有一些代码可以触发两个线程

class start():
    def __init__(self):
        Thread1= functions.threads.Thread1()
        Thread1.setDaemon(True)
        Thread1.start()
        Thread2= functions.threads.Thread2()
        Thread2.setDaemon(True)
        Thread2.start()

        #Stop thread here

此刻,当程序到达该函数的结尾时,它退出(此后主线程没有其他操作),从而杀死了无限运行的线程(循环)。 如何停止主要流程退出? 我可以用while True: None循环来做到这一点,但这会占用大量CPU,并且可能有更好的方法。

使用join

Thread1.join()
Thread2.join()

另请注意, setDaemon是旧的API。

Thread1.daemon = True

是现在的首选方式。

守护程序线程的全部目的是阻止应用程序在它们中的任何一个仍在运行时被终止。 显然,您希望线程使应用程序进程保持活动状态,因此不要使它们成为守护进程。

如果您不对线程执行setDaemon(True) ,则只要线程运行,该进程将一直运行。

守护程序标志指示解释器无需等待线程。 仅保留后台驻留程序线程时,它将退出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM