I encountered an issue when using
ThreadPoolExecutor in my program. The program appears to “freeze” when I terminate it, as if the thread is not being ended correctly. Is there a solution to this issue?
from concurrent.futures import ThreadPoolExecutor from time import sleep def task(): for i in range(3): print(i) sleep(1) with ThreadPoolExecutor() as executor: future = executor.submit(task) future.cancel() # Waits for loop of blocking task to complete executor.shutdown(wait=False) # Still waits for loop in blocking task to complete
Attempting to use
sys.exit() does not work, as the program still waits for the future to complete before ending.