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:
-
Modulo
multiprocessing— fornisce strumenti per creare processi e scambiare dati tra loro. In particolare, ci sono oggettiQueue,Pipeper il trasporto di messaggi, eManagerper creare oggetti condivisi. -
Scambio tramite file o database — i processi possono leggere e scrivere dati in file condivisi o usare un database per sincronizzazione e scambio.
-
Socket — i processi possono comunicare tramite socket di rete, utile per sistemi distribuiti.
-
Meccanismi IPC del sistema (inter-processo) — come semafori, memoria condivisa, code di messaggi (tramite moduli
posix_ipcosysv_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()