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

В чем разница между корутинами и потоками в Python

Корутины и потоки в Python решают задачи конкурентности, но работают по-разному:

Потоки (threading)

  • Используют системные потоки ОС (GIL ограничивает параллелизм в CPython)
  • Переключение между потоками управляется ОС (preemptive multitasking)
  • Подходят для I/O-bound задач
python
import threading

def task():
print("Thread running")

thread = threading.Thread(target=task)
thread.start()

text

**Корутины (asyncio)**  
- Работают в одном потоке (cooperative multitasking)  
- Переключение явное через `await`  
- Эффективны для I/O-bound задач с большим количеством соединений  
```python
import asyncio

async def task():
    print("Coroutine running")

await task()  # в async функции

Ключевые отличия:

  1. Потоки могут выполняться параллельно (если GIL отпущен), корутины - только последовательно
  2. Корутины потребляют меньше ресурсов (нет накладных расходов на переключение потоков)
  3. Корутины требуют явного указания точек переключения (await)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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