Sobes.tech
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.