Junior — Middle
Que métodos são utilizados para gerir e coordenar fluxos em Python?
sobes.tech IA
Resposta da IA
Em Python, os seguintes métodos e ferramentas do módulo threading são utilizados para gerir e coordenar threads:
-
Criação e execução de threads:
import threading def worker(): print("A thread está a funcionar") t = threading.Thread(target=worker) t.start() t.join() # Espera que a thread termine -
Sincronização de threads:
Lock— um mutex simples para evitar acessos simultâneos a um recurso.RLock— uma trava recursiva que permite a um thread adquiri-la várias vezes.Event— para notificar threads sobre a ocorrência de um evento.Condition— para sincronização mais complexa com espera e notificação.Semaphore— limita o número de threads que executam uma secção de código ao mesmo tempo.
-
Exemplo de uso de Lock:
lock = threading.Lock() def safe_increment(counter): with lock: counter[0] += 1 -
Coordenação com Event:
event = threading.Event() def wait_for_event(): event.wait() # Espera pelo sinal print("O evento ocorreu") def trigger_event(): event.set() # Envia o sinal
Estes métodos permitem criar aplicações multithread com controlo de acesso a recursos partilhados e coordenação entre threads.