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

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

Использование нескольких потоков для вычислительных операций в Python может быть неэффективным из-за GIL (Global Interpreter Lock). GIL позволяет выполняться только одному потоку за раз, даже на многоядерных процессорах. Это делает потоки бесполезными для CPU-bound задач (например, математические вычисления), так как они выполняются последовательно, а не параллельно.

Для CPU-bound задач лучше использовать модуль multiprocessing, который создает отдельные процессы с собственным GIL, позволяя использовать все ядра процессора.

Пример:

python
import threading
import time

def compute():
    result = 0
    for _ in range(10**7):
        result += 1
    return result

# Медленно из-за GIL
start = time.time()
threads = [threading.Thread(target=compute) for _ in range(4)]
for t in threads:
    t.start()
for t in threads:
    t.join()
print(f"Threads: {time.time() - start:.2f}s")
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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