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

Почему несколько потоков не могут выполнять задачи параллельно в Python

В Python существует GIL (Global Interpreter Lock) — глобальная блокировка интерпретатора, которая предотвращает одновременное выполнение байт-кода несколькими потоками. Это связано с тем, что управление памятью в CPython не является потокобезопасным.

Пример:

python
import threading

def count_up():
    global x
    for _ in range(1000000):
        x += 1

x = 0
threads = [threading.Thread(target=count_up) for _ in range(2)]
for t in threads:
    t.start()
for t in threads:
    t.join()
print(x)  # Результат может быть меньше 2000000 из-за GIL

Вывод:
Потоки выполняются конкурентно, но не параллельно. Для истинного параллелизма лучше использовать multiprocessing или асинхронные подходы (asyncio).

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

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

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

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