Back to questions
Junior — Middle
73
Какими способами осуществляется передача информации между запущенными процессами в системе?
Answer from AI
sobes.tech AI
Передача информации между запущенными процессами (межпроцессное взаимодействие, IPC) в системах может осуществляться несколькими способами:
- Файлы: процессы записывают и читают данные из общих файлов.
- Каналы (pipes): односторонняя или двусторонняя передача данных, часто используется в Unix-системах.
- Сокеты: позволяют обмениваться данными по сети или локально через Unix domain sockets.
- Общая память (shared memory): выделяется область памяти, доступная нескольким процессам.
- Семафоры и мьютексы: используются для синхронизации доступа к общим ресурсам.
- Сообщения (message queues): процессы обмениваются сообщениями через системные очереди.
В Python для IPC можно использовать модуль multiprocessing, который поддерживает очереди, каналы и shared memory. Пример передачи данных через очередь:
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()