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

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

Процессы имеют независимые адресные пространства, каждый работает в своей выделенной памяти. Потоки же разделяют память родительского процесса, включая глобальные переменные и кучу.

Пример с процессами:

python
from multiprocessing import Process

x = 0
def worker():
    global x
    x = 1  # Изменяется только в дочернем процессе

p = Process(target=worker)
p.start()
p.join()
print(x) # Выведет 0 - изменения не видны в основном процессе

text

**Пример с потоками:**
```python
from threading import Thread

x = 0
def worker():
    global x
    x = 1  # Изменяется для всех потоков

t = Thread(target=worker)
t.start()
t.join()
print(x)  # Выведет 1 - изменения видны в основном потоке

Для безопасного доступа к общим данным между потоками используйте примитивы синхронизации (Lock, RLock). Для обмена данными между процессами - специальные объекты (Queue, Pipe, Value, Array).

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

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

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

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