Sobes.tech
Junior — Middle

Como pode realizar-se a interação entre vários processos em Python?

sobes.tech IA

Resposta da IA

Em Python, a interação entre vários processos pode ser organizada de várias maneiras:

  1. Módulo multiprocessing — fornece ferramentas para criar processos e trocar dados entre eles. Em particular, há objetos Queue, Pipe para transmissão de mensagens, bem como Manager para criar objetos compartilhados.

  2. Troca através de ficheiros ou base de dados — os processos podem ler e escrever dados em ficheiros comuns ou usar uma base de dados para sincronização e troca.

  3. Sockets — os processos podem comunicar através de sockets de rede, o que é conveniente para sistemas distribuídos.

  4. Mecanismos IPC do sistema (inter-processos) — por exemplo, semáforos, memória partilhada, filas de mensagens (através de módulos posix_ipc ou sysv_ipc).

Exemplo de uso de multiprocessing.Queue para troca de mensagens:

from multiprocessing import Process, Queue

def worker(q):
    q.put('Olá do processo filho')

if __name__ == '__main__':
    q = Queue()
    p = Process(target=worker, args=(q,))
    p.start()
    print(q.get())  # Recebe uma mensagem do processo filho
    p.join()