Встречается на собеседованиях • сегодня
Почему не стоит использовать несколько потоков для вычислительной операции
Использование нескольких потоков для вычислительных операций в 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")
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы