thats私の最初の質問stackoverflow。私は主にここで私が知る必要があるものを見つけることができました。このbtwのために多くのありがとう。Python Processpoolexecutor - キューを強制終了しますか?
ただし、私がProcessPoolExecutorをkillしようとすると、生成されたキュー全体を処理するだけです(私はそう思いますか?)。 Processpoolexecutorのキューをすぐにクリーンアップする簡単な方法はありますか?
from concurrent.futures import ProcessPoolExecutor
from time import sleep
from random import randint
def something_fancy():
sleep(randint(0, 5))
return 'im back!'
class Work:
def __init__(self):
self.exe = ProcessPoolExecutor(4)
def start_procs(self):
for i in range(300):
t = self.exe.submit(something_fancy)
t.add_done_callback(self.done)
def done(self, f):
print f.result()
def kill(self):
self.exe.shutdown()
if __name__ == '__main__':
work_obj = Work()
work_obj.start_procs()
sleep(5)
work_obj.kill()
だから私がしたいのは、4つのプロセスによって処理される300のキューを生成することです。 5秒後、それはただ終了するはずです。
私はgil btwのためにプロセスを使用する必要があります。