Sobes.tech
Junior — Middle

Hogyan valósítható meg több folyamat közötti interakció Pythonban?

sobes.tech MI

Válasz az MI-től

Pythonban több folyamat közötti interakció többféleképpen szervezhető:

  1. multiprocessing modul — eszközöket biztosít folyamatok létrehozására és adatok cseréjére közöttük. Különösen, léteznek Queue, Pipe objektumok üzenetek továbbítására, valamint Manager közös objektumok létrehozására.

  2. Csere fájlokon vagy adatbázison keresztül — a folyamatok olvashatnak és írhatnak közös fájlokba, vagy adatbázist használhatnak szinkronizációra és cserére.

  3. Socketek — a folyamatok hálózati socketeken keresztül kommunikálhatnak, ami kényelmes elosztott rendszerekhez.

  4. IPC mechanizmusok a rendszerben — például szemaforok, megosztott memória, üzenetsorok (posix_ipc vagy sysv_ipc modulokon keresztül).

Példa a multiprocessing.Queue használatára üzenetküldéshez:

from multiprocessing import Process, Queue

def worker(q):
    q.put('Helló a gyermekfolyamtól')

if __name__ == '__main__':
    q = Queue()
    p = Process(target=worker, args=(q,))
    p.start()
    print(q.get())  # Üzenet fogadása a gyermekfolyamtól
    p.join()