我有一個線程,在這裏我使用一個線程事件,以控制從目標函數外螺紋。Python的線程事件
flag = threading.event()
在我的目標函數,我有這樣的事情:
def functionname(arguments):
flag.clear()
while not flag.wait(timeout = 0.5):
# do something.
,每當我想要回線,從我的主要功能我說,flag.set()。然後將標誌設置爲true,我的目標函數完成執行並且線程完成。
現在,如果我想在我的主函數中使用flag.wait(超時= 5),我期待阻塞等待五秒執行代碼的「有所作爲」的一部分。但是我發現代碼中的「執行某些操作」部分每隔0.5秒執行一次,並且我的主要功能被阻止了五秒鐘。
等待方法有可能阻塞,直到該標誌爲真,或者可選的超時結束。它阻止了我的主要功能,而不是目標功能。任何人都知道這可能是爲什麼?
PS:我在主函數中定義的標誌事件,並通過它作爲參數傳遞給目標函數
我很困惑....你'flag.wait(超時= 5)',你想,爲了使線程的'flag.wait(超時= 0.5)'等待5秒鐘,而不是?這是行不通的。主線程的超時是獨立於孩子的。你的目標是什麼?你想控制孩子在主線程中等待多久? – tdelaney
的flag.wait(超時= 0.5)最初寫入時,我希望目標函數以每0.5秒處運行。現在,如果我想將其更改爲5秒,則使用flag.wait(5)。標誌是一個線程事件,它應該只對目標函數執行,而不是對主線程執行。 –