Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
from concurrent.futures import ThreadPoolExecutor
import time
def wait_function(x, y):
print('Task(', x,'multiply', y, ') started')
time.sleep(2)
print('Task(', x,'multiply', y, ') completed')
return x * y
def callback_function(future):
print('Callback with the following result', future.result())
with ThreadPoolExecutor(max_workers=1) as executor: #change max_workers to 2 and see the results
future = executor.submit(wait_function, 3, 4)
future.add_done_callback(callback_function)
future2 = executor.submit(wait_function, 8, 8)
while True:
if(future.running()):
print("Task 1 running")
if(future2.running()):
print("Task 2 running")
if(future.done() and future2.done()):
print(future.result(), future2.result())
break
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment