Sobes.tech
Junior — Middle

Как може да се осъществи взаимодействие между няколко процеса в Python?

sobes.tech AI

Отговор от AI

В Python взаимодействието между няколко процеса може да бъде организирано по няколко начина:

  1. Модул multiprocessing — предоставя средства за създаване на процеси и обмен на данни между тях. По-конкретно, има обекти Queue, Pipe за предаване на съобщения, както и Manager за създаване на общи обекти.

  2. Обмен чрез файлове или база данни — процесите могат да четат и записват данни в общи файлове или да използват база данни за синхронизация и обмен.

  3. Сокети — процесите могат да комуникират чрез мрежови сокети, което е удобно за разпределени системи.

  4. Механизми IPC на системно ниво — например, семафори, споделена памет, опашки за съобщения (чрез модули posix_ipc или sysv_ipc).

Пример за използване на multiprocessing.Queue за обмен на съобщения:

from multiprocessing import Process, Queue

def worker(q):
    q.put('Здравей от детския процес')

if __name__ == '__main__':
    q = Queue()
    p = Process(target=worker, args=(q,))
    p.start()
    print(q.get())  # Получава съобщение от детския процес
    p.join()