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

Как работает многопоточность

В Python многопоточность реализуется через модуль threading. Однако из-за GIL (Global Interpreter Lock) настоящего параллелизма потоков для CPU-задач нет — GIL позволяет выполняться только одному потоку за раз. Потоки полезны для I/O-задач (сеть, файлы), где есть ожидание.

Пример:

python
import threading

def task(name):
    print(f"Поток {name} начал работу")
    # Имитация I/O операции
    import time
    time.sleep(2)
    print(f"Поток {name} завершил работу")

threads = []
for i in range(3):
    t = threading.Thread(target=task, args=(i,))
    threads.append(t)
    t.start()

for t in threads:
    t.join()

Ключевые моменты:

  • Thread() создает поток
  • start() запускает поток
  • join() ожидает завершения
  • Для CPU-задач лучше использовать multiprocessing (реальная параллельность)
  • Для управления общими данными используйте Lock
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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