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

В чем разница работы с памятью у потока и процесса в 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()
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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