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

Что лучше асинхронность, синхронность или многопоточность (multithreading)

Выбор зависит от задачи:

Синхронность - простой и понятный подход, но блокирует выполнение при I/O операциях. Подходит для простых скриптов и CPU-bound задач.

Многопоточность - эффективна для I/O-bound задач в CPython, но имеет GIL ограничения. Может вызывать race conditions. Пример:

python
from threading import Thread

def task():
# I/O операция
pass

threads = [Thread(target=task) for _ in range(10)]
for t in threads: t.start()
for t in threads: t.join()

text

**Асинхронность** (asyncio) - оптимальна для I/O-bound задач с большим количеством соединений. Не требует потоков, но весь код должен быть async:
```python
import asyncio

async def task():
    await asyncio.sleep(1)

async def main():
    await asyncio.gather(*[task() for _ in range(10)])

Выбор:

  • CPU-bound: синхронность или multiprocessing
  • I/O-bound с многими соединениями: asyncio
  • I/O-bound с legacy кодом: потоки
  • Смешанные задачи: комбинация подходов
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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