Встречается на собеседованиях • сегодня
В чем разница работы с памятью у потока и процесса в Python
Потоки в Python используют общую память процесса, что позволяет легко обмениваться данными, но требует синхронизации (например, через threading.Lock). Однако из-за GIL (Global Interpreter Lock) только один поток может выполнять Python-код одновременно, что ограничивает параллелизм для CPU-bound задач.
Процессы имеют отдельные области памяти, что исключает конфликты, но требует специальных механизмов для обмена данными (multiprocessing.Queue, Pipe или shared memory). Подходят для CPU-bound задач, так как GIL не мешает.
Пример с потоками:
python
import threading
counter = 0
lock = threading.Lock()
def increment():
global counter
with lock:
counter += 1Пример с процессами:
python
from multiprocessing import Process, Value
def increment(counter):
counter.value += 1
counter = Value('i', 0)
p = Process(target=increment, args=(counter,))
p.start()
p.join()
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы