thats 내 첫 번째 질문에 stackoverflow. 나는 내가 알고 싶은 것을 여기에서 찾을 수 있었다. 이 btw에 대해 감사드립니다.Python Processpoolexecutor - 대기열을 없애시겠습니까?
그러나. 내 ProcessPoolExecutor를 죽이려고하면 생성 된 전체 큐를 통해 작동합니다 (.. 그렇게 생각합니까?). 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 때문에 프로세스를 사용해야합니다.