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()