Sobes.tech
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:

  1. Modul multiprocessing — poskytuje nástroje na vytváranie procesov a výmenu dát medzi nimi. Konkrétne, existujú objekty Queue, Pipe na odosielanie správ, ako aj Manager na vytváranie spoločných objektov.

  2. 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.

  3. Sokety — procesy môžu komunikovať cez sieťové sokety, čo je vhodné pre distribuované systémy.

  4. Systémové IPC mechanizmy — napríklad semafory, zdieľaná pamäť, fronty správ (cez moduly posix_ipc alebo sysv_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()