簡體   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