.
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?
Example code:
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.