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

В чем разница между асинхронностью и параллелизмом

Асинхронность и параллелизм - разные подходы к выполнению задач:

Асинхронность - это однопоточный подход, где задачи выполняются по очереди, но без блокировки потока на ожидании. Когда задача требует ожидания (например, I/O), поток переключается на другую задачу.

python
import asyncio

async def fetch_data():
    await asyncio.sleep(1)  # Не блокирует поток
    return "data"

async def main():
task = asyncio.create_task(fetch_data())
print("Можно делать что-то еще")
data = await task

text

**Параллелизм** - это одновременное выполнение задач в разных потоках/процессах, используя несколько ядер CPU. В Python реализуется через `threading` или `multiprocessing`.

```python
from threading import Thread

def calculate():
    # Ресурсоемкие вычисления
    return 42

t = Thread(target=calculate)
t.start()  # Запускается параллельно

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

  • Асинхронность эффективна для I/O-bound задач
  • Параллелизм подходит для CPU-bound задач
  • В Python GIL ограничивает параллелизм в потоках
  • Асинхронность требует специального синтаксиса (async/await)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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