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

Как работает асинхронность при использовании потоков

В Python потоки (threading) реализуют асинхронность через переключение между потоками, но из-за GIL (Global Interpreter Lock) только один поток выполняет Python-код одновременно. Это делает потоки эффективными для I/O-bound задач, но не для CPU-bound.

Пример с потоками:

python
import threading
import time

def task(name):
print(f"Task {name} started")
time.sleep(2) # Имитация I/O операции
print(f"Task {name} finished")

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

for t in threads:
t.join()

text

Ключевые моменты:
- Потоки выполняются параллельно, но GIL ограничивает параллельное выполнение Python-кода
- Подходят для операций, где есть ожидание (сеть, файлы, sleep)
- Общая память между потоками требует синхронизации (Lock, RLock)
- Переключение между потоками происходит автоматически планировщиком ОС
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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