Встречается на собеседованиях • сегодня
Как делится память между несколькими процессами и потоками
Процессы имеют независимые адресные пространства, каждый работает в своей выделенной памяти. Потоки же разделяют память родительского процесса, включая глобальные переменные и кучу.
Пример с процессами:
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).

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