Встречается на собеседованиях • сегодня
Как работает взаимодействие между процессами в Linux
В Linux процессы взаимодействуют через несколько механизмов:
- Сигналы - асинхронные уведомления (например, SIGTERM для завершения). Пример:
python
import os, signal
os.kill(pid, signal.SIGTERM) # Отправка сигнала- Каналы (pipes) - однонаправленный поток данных:
python
import os
r, w = os.pipe() # Создание канала-
Очереди сообщений (System V, POSIX) - структурированные сообщения.
-
Разделяемая память - общий участок памяти между процессами.
-
Сокеты - сетевой или локальный (Unix domain) обмен данными.
-
Файлы - простейший способ через файловую систему.
Для Python наиболее удобны:
multiprocessingмодуль (очереди, каналы, разделяемая память)subprocessдля запуска дочерних процессовos.pipe()для низкоуровневых каналов
Пример с multiprocessing:
python
from multiprocessing import Process, Queue
def worker(q):
q.put('Hello from child!')
q = Queue()
p = Process(target=worker, args=(q,))
p.start()
print(q.get()) # Получаем сообщение
p.join()Все механизмы IPC в Linux используют системные вызовы и требуют синхронизации для избежания race conditions.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы