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

Можно ли реализовать разделение памяти между процессами

Да, в Python можно реализовать разделение памяти между процессами с помощью модуля multiprocessing. Основные способы:

  1. Shared Memory - через Value и Array:
python
from multiprocessing import Process, Value, Array

def modify(n, arr):
    n.value = 3.14
    for i in range(len(arr)):
        arr[i] *= 2

num = Value('d', 0.0)
arr = Array('i', range(10))

p = Process(target=modify, args=(num, arr))
p.start()
p.join()

print(num.value) # 3.14
print(arr[:]) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

text

2. **Manager** - для более сложных структур:
```python
from multiprocessing import Manager

def modify(d, l):
    d['key'] = 'value'
    l.reverse()

with Manager() as manager:
    d = manager.dict()
    l = manager.list(range(10))
    
    p = Process(target=modify, args=(d, l))
    p.start()
    p.join()
    
    print(d)  # {'key': 'value'}
    print(l)  # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

Важно: настоящая разделяемая память работает только между процессами одного Python-интерпретатора. Для межпроцессного взаимодействия между разными интерпретаторами лучше использовать другие механизмы (очереди, сокеты, файлы).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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