Встречается на 1% собеседований по Python
В чем разница работы с памятью у потока и процесса в 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
интервью вопросы и ответы