當前位置:成語大全網 - 書法字典 - Python ThreadPoolExecutor中止解決方案

Python ThreadPoolExecutor中止解決方案

通常,我們使用Ctrl+C讓程序觸發KeyboardInterrupt異常並停止程序。線程池方案中,Ctrl-C無效,線程池中的線程任務運行完畢後會觸發KeyboardInterrupt。

上下文管理協議相當於隱式省略threadPool.shutdown(wait=True)。同時,當程序正常執行完成或者發生異常中斷時,會調用__exit__()方法,然後進行異常中斷的依據。

適用於Django等WEB應用框架,有自己的多線程。修改全局變量很簡單,但是要註意線程安全。

程序運行時,只需sign = 1或exiting.set(),worker函數跳過主運算部分,剩下的線程任務就會很快完成,從而達到變相停止多線程任務的目的。

提交給線程池的每個線程任務都被添加到線程池中,以便於對任務的後續操作。當for循環中的所有任務提交後,線程將在後臺運行,進程將運行到while阻塞,直到threadPool中的最後壹個線程完成。完成()。如果進程被阻塞,在while中接收到Ctrl+C的KeyboardInterrupt異常,那麽線程池中的所有任務都會從後向前取消,達到停止的目的。