Junior — Middle
Ako možno realizovať interakciu medzi viacerými procesmi v Pythone?
sobes.tech AI
Odpoveď od AI
V Pythone môže byť interakcia medzi viacerými procesmi organizovaná rôznymi spôsobmi:
-
Modul
multiprocessing— poskytuje nástroje na vytváranie procesov a výmenu dát medzi nimi. Konkrétne, existujú objektyQueue,Pipena odosielanie správ, ako ajManagerna vytváranie spoločných objektov. -
Výmena cez súbory alebo databázu — procesy môžu čítať a zapisovať dáta do spoločných súborov alebo použiť databázu na synchronizáciu a výmenu.
-
Sokety — procesy môžu komunikovať cez sieťové sokety, čo je vhodné pre distribuované systémy.
-
Systémové IPC mechanizmy — napríklad semafory, zdieľaná pamäť, fronty správ (cez moduly
posix_ipcalebosysv_ipc).
Príklad použitia multiprocessing.Queue na výmenu správ:
from multiprocessing import Process, Queue
def worker(q):
q.put('Ahoj z dieťaťa')
if __name__ == '__main__':
q = Queue()
p = Process(target=worker, args=(q,))
p.start()
print(q.get()) # Prijíma správu od dieťaťa
p.join()