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

Что такое Shared memory

В Python shared memory (разделяемая память) позволяет нескольким процессам получать доступ к одним и тем же данным в памяти, что эффективнее, чем IPC через файлы или сокеты.

Основные моменты:

  • Используется модуль multiprocessing.shared_memory (Python 3.8+).
  • Поддерживает создание shared блоков памяти (SharedMemory) и управление ими.
  • Данные могут быть представлены как numpy массивы или ctypes структуры.

Пример:

python
from multiprocessing import shared_memory

# Создание shared памяти
shm = shared_memory.SharedMemory(create=True, size=10)
buffer = shm.buf
buffer[:5] = bytearray([1, 2, 3, 4, 5])  # Запись данных

# В другом процессе можно подключиться по имени
existing_shm = shared_memory.SharedMemory(name=shm.name)
print(list(existing_shm.buf[:5]))  # [1, 2, 3, 4, 5]

# Очистка
shm.close()
existing_shm.close()
shm.unlink()  # Удаление shared памяти

Нюансы:

  • Требуется синхронизация (например, через multiprocessing.Lock).
  • Подходит только для однородных данных (числа, байты).
  • Важно явно закрывать (close()) и удалять (unlink()) shared память.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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