Sobes.tech
Junior — Middle

Python-da bir neçə proses arasında necə qarşılıqlı əlaqə qurmaq olar?

sobes.tech Süni İntellekt

AI-dan cavab

Python-da, çox prosesli qarşılıqlı əlaqəni müxtəlif yollarla təşkil etmək mümkündür:

  1. multiprocessing modulu — proseslər yaratmaq və aralarındakı məlumat mübadiləsini təmin etmək üçün vasitələr təqdim edir. Xüsusilə, Queue, Pipe obyektləri mesajların ötürülməsi üçün, həmçinin Manager ümumi obyektlərin yaradılması üçün mövcuddur.

  2. Fayllar və ya verilənlər bazası vasitəsilə mübadilə — proseslər ümumi fayllarda məlumat oxuya və yaza bilər və ya sinxronizasiya və mübadilə üçün verilənlər bazasından istifadə edə bilər.

  3. Soketlər — proseslər şəbəkə soketləri vasitəsilə əlaqə qura bilər, bu, paylanmış sistemlər üçün əlverişlidir.

  4. Sistem IPC mexanizmləri — məsələn, semaforlar, paylaşılan yaddaş, mesaj növbələri (posix_ipc və ya sysv_ipc modulları vasitəsilə).

Mesaj mübadiləsi üçün multiprocessing.Queue istifadə nümunəsi:

from multiprocessing import Process, Queue

def worker(q):
    q.put('Salam, uşaq prosesi')

if __name__ == '__main__':
    q = Queue()
    p = Process(target=worker, args=(q,))
    p.start()
    print(q.get())  # Uşaq prosesindən mesaj alır
    p.join()