我有一個相當簡單的程序,每個任務添加到taskq中正在執行並計算一些內容,比如說30秒。這個任務'不'在某種時間或循環中運行。Python - 停止長時間運行的taskq線程
def run(self):
while not self.stopper.is_set():
DO_MY_30_SECONDS_WORK(self)
self.task_done()
現在,假設我有一個thread.event,並且這可以在任務完成之前/之後檢查。但是有沒有辦法告訴已經運行的線程停止或退出它的執行。
我有一個類似於你去年的問題,並使用SIGNAL來處理這個問題。你可以用你的主線程啓動另一個線程,並在輔助線程中啓動一個時間計數器。當計數器完成時,向主線程發送信號並通過獲取信號來殺死它。你可能想看看[this](https://pymotw.com/2/signal/) – cengineer
是你的任務一些python代碼,還是你使用'subprocess'運行的另一個程序? – hansaplast
這只是python代碼,但可能使用curl調用.. – Jay