from concurrent.futures import * from threading import Event from sys import setswitchinterval setswitchinterval(1e-6) pool = ThreadPoolExecutor(100) event = Event() def do_nothing(): event.wait() fs = {pool.submit(do_nothing) for i in range(1000)} event.set() wait(fs, return_when=ALL_COMPLETED)