我試圖通過多個論壇來解決這個問題,但仍然沒有得到解決方案的答案。 我會盡可能地具體說明我在找什麼。 我有一個用例,我需要一個線程在一定的時間後終止它自己。我不想在主線程中使用.join(timeout = x),因爲據我所知不會終止線程。我想讓這個定時事件在線程中實現,它應該在它自行終止之前做一些清理和更新。 JFYI:我不能使用運行方法中的循環來檢查狀態。我的需求是,目標函數將在run方法內被調用。基於計時器終止一個python線程
class MyThread(Thread):
def __init__(self):
Thread.__init__(self)
self.timer = Timer(5.0, self.timeout)
def run(self):
self.timer.start()
# call the target function which runs
def timeout(self):
# timeout code
# If timeout has been reached then thread should do some internal cleanup and terminate thread here.
線程只能合作終止。如果您調用的任何函數沒有停止機制,那麼您遇到問題。 – tdelaney