Sobes.tech
Junior — Middle

Come si può realizzare l'interazione tra più processi in Python?

sobes.tech AI

Risposta dell'AI

In Python, l'interazione tra più processi può essere organizzata in diversi modi:

  1. Modulo multiprocessing — fornisce strumenti per creare processi e scambiare dati tra loro. In particolare, ci sono oggetti Queue, Pipe per il trasporto di messaggi, e Manager per creare oggetti condivisi.

  2. Scambio tramite file o database — i processi possono leggere e scrivere dati in file condivisi o usare un database per sincronizzazione e scambio.

  3. Socket — i processi possono comunicare tramite socket di rete, utile per sistemi distribuiti.

  4. Meccanismi IPC del sistema (inter-processo) — come semafori, memoria condivisa, code di messaggi (tramite moduli posix_ipc o sysv_ipc).

Esempio di utilizzo di multiprocessing.Queue per scambiare messaggi:

from multiprocessing import Process, Queue

def worker(q):
    q.put('Ciao dal processo figlio')

if __name__ == '__main__':
    q = Queue()
    p = Process(target=worker, args=(q,))
    p.start()
    print(q.get())  # Riceve un messaggio dal processo figlio
    p.join()