Sobes.tech
Junior — Middle

De que formas é que a interação e a troca de informação entre processos separados são realizadas?

sobes.tech IA

Resposta da IA

A interação e troca de informações entre processos individuais (IPC, Comunicação entre Processos) em Python pode ser implementada de várias maneiras:

  1. Filas (Queues) do módulo multiprocessing — permitem transferir dados de forma segura entre processos.

  2. Túneis (Pipes) — canais bidirecionais para troca de dados.

  3. Objetos partilhados (Shared Memory) — através de multiprocessing.Value ou multiprocessing.Array para acesso conjunto aos dados.

  4. Sockets — ligações de rede que podem ser usadas para trocar dados entre processos, mesmo em máquinas diferentes.

  5. Ficheiros — processos podem ler e escrever em ficheiros para trocar informações.

  6. Semáforos, bloqueios, eventos — para sincronizar processos.

Exemplo de uso de uma fila:

from multiprocessing import Process, Queue

def worker(q):
    q.put('Dados do processo')

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

A escolha do método depende da tarefa, do volume e da natureza dos dados transmitidos.