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

Так ли это, что нельзя получить параллельность потоков в Python

В Python действительно есть ограничения на параллельность потоков из-за Global Interpreter Lock (GIL). GIL позволяет выполняться только одному потоку Python в один момент времени, даже на многоядерных системах. Однако это не значит, что потоки бесполезны:

  1. I/O-bound задачи – потоки эффективны, так как GIL освобождается во время ожидания ввода-вывода (сеть, файлы и т.д.).
  2. CPU-bound задачи – для истинной параллельности лучше использовать multiprocessing, так как процессы имеют свои собственные GIL.

Пример с потоками (I/O-bound):

python
import threading
import time

def task():
    time.sleep(1)  # Имитация I/O операции
    print("Done")

threads = [threading.Thread(target=task) for _ in range(5)]
for t in threads:
    t.start()
for t in threads:
    t.join()

Для CPU-bound задач используйте multiprocessing. GIL — это компромисс для упрощения работы с памятью и C-расширениями.

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

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

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

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