Встречается на собеседованиях • сегодня
Может ли многопоточность быть запущена на разных ядрах процесса
В Python из-за GIL (Global Interpreter Lock) потоки выполняются на одном ядре, даже если система многоядерная. GIL предотвращает параллельное выполнение байт-кода Python в разных потоках. Однако, для CPU-задач лучше использовать multiprocessing, который создает отдельные процессы с собственным GIL, распределяя нагрузку на ядра.
Пример с потоками (одно ядро):
python
import threading
def task():
print(threading.current_thread().name)
threads = [threading.Thread(target=task) for _ in range(4)]
for t in threads:
t.start()Пример с процессами (много ядер):
python
from multiprocessing import Process
def task():
print("Process running")
procs = [Process(target=task) for _ in range(4)]
for p in procs:
p.start()Для I/O-задач потоки эффективны, так как GIL освобождается во время ожидания. Для CPU-задач используйте процессы или асинхронность.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы