在我的 Python 3 應(yīng)用程序中,我必須處理許多不應(yīng)阻塞主線程的小型(同時)I/O 任務(wù),因此我想利用線程池:from concurrent.futures import ThreadPoolExecutorclass MyApp: def __init__(self): self.app_thread_pool = ThreadPoolExecutor() def submit_task(self, task): self.app_thread_pool.submit(MyApp.task_runner, task) @staticmethod def task_runner(task): # Do some stuff with the task, save to disk, etc.這工作正常,作業(yè)正在線程池的線程中提交和啟動,任務(wù)執(zhí)行它們應(yīng)該執(zhí)行的操作?,F(xiàn)在,閱讀該concurrent.futures模塊的文檔,似乎該模塊/線程池將與Future對象一起使用,以便處理提交任務(wù)的結(jié)果。然而,就我而言,我對這些結(jié)果不感興趣,我想解雇并忘記我的任務(wù),他們能夠處理自己。所以我的問題是:我是否必須使用 futures,或者我可以簡單地執(zhí)行submit()一個任務(wù),如上所示,并忽略Future從作業(yè)提交返回的任何對象?我問的是內(nèi)存和資源管理方面。請注意,我也不想使用該with語句來使用線程池,如文檔中所述,因為我在應(yīng)用程序的整個生命周期中都需要這個線程池,并且啟動線程池的主線程還有許多其他事情要做...
我可以觸發(fā)并忘記提交到線程池的可調(diào)用對象嗎?
慕田峪4524236
2023-08-15 16:49:10