Forma de controlar execuções com thread em Python.
Exemplo:
import threading
import time
def waiter(event, duration):
print("Waiting for the event to be set...")
event_waited = event.wait(duration)
if event_waited:
print("Done waiting, event was set!")
else:
print("Done waiting, timed out!")
def setter(event, delay):
time.sleep(delay)
print("Setting the event.")
event.set()
# Create an Event object
event = threading.Event()
# Create two threads: one for waiting and one for setting the event
wait_thread = threading.Thread(target=waiter, args=(event, 10))
set_thread = threading.Thread(target=setter, args=(event, 3))
# Start both threads
wait_thread.start()
set_thread.start()
# Join both threads to the main thread
wait_thread.join()
set_thread.join()