Sobes.tech
Back to questions
Junior — Middle
63

Какие методы межпроцессного обмена данными ты знаешь в Python?

Companies where asked
Notamedia

Answer from AI

sobes.tech AI

В Python для межпроцессного обмена данными (IPC) существуют несколько методов:

  • Модуль multiprocessing:

    • Queue — потокобезопасная очередь для передачи объектов между процессами.
    • Pipe — двунаправленный канал для обмена данными между двумя процессами.
    • Manager — объект, который позволяет создавать общие объекты (списки, словари), доступные из разных процессов.
  • Сокеты (socket) — позволяют обмениваться данными между процессами, даже на разных машинах.

  • Общие файлы и память:

    • Использование файлов для записи и чтения данных.
    • Модуль multiprocessing.shared_memory (начиная с Python 3.8) для создания разделяемой памяти.
  • Сигналы и очереди сообщений ОС — более низкоуровневые механизмы, редко используются напрямую в Python.

Пример с multiprocessing.Queue:

from multiprocessing import Process, Queue

def worker(q):
    q.put('Hello from child')

if __name__ == '__main__':
    q = Queue()
    p = Process(target=worker, args=(q,))
    p.start()
    print(q.get())  # Выведет: Hello from child
    p.join()