Встречается на собеседованиях • сегодня

Как передать информацию между двумя процессами

В Python для межпроцессного взаимодействия (IPC) можно использовать несколько методов:

  1. Очереди (multiprocessing.Queue)
    Самый простой способ для передачи данных между процессами.
    python
    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()
  1. Pipe (multiprocessing.Pipe)
    Создает двунаправленный канал связи.

    python
    from multiprocessing import Process, Pipe
    
    def worker(conn):
        conn.send('Message')
        conn.close()
    
    parent_conn, child_conn = Pipe()
    p = Process(target=worker, args=(child_conn,))
    p.start()
    print(parent_conn.recv())  # Message
    p.join()
  2. Shared Memory (Value/Array)
    Для совместного доступа к данным.

    python
    from multiprocessing import Process, Value
    
    def worker(v):
        v.value = 42
    
    val = Value('i', 0)
    p = Process(target=worker, args=(val,))
    p.start()
    p.join()
    print(val.value)  # 42
  3. Сокеты или файлы
    Для более сложных сценариев (например, между разными машинами).

Выбор метода зависит от задачи:

  • Очереди — для простой передачи сообщений.
  • Pipe — для двусторонней связи.
  • Shared Memory — для высокопроизводительного обмена данными.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы