В чем разница между асинхронным и синхронным подходом
Python
Junior
Рунити
В чем разница между асинхронным и синхронным подходом
Ответы
Синхронный код выполняется последовательно - каждая операция блокирует выполнение до своего завершения. Асинхронный позволяет выполнять задачи параллельно, не дожидаясь завершения предыдущих операций.
Ключевые различия:
- **Блокировка** - синхронный код блокирует поток, асинхронный нет
- **Производительность** - асинхронный лучше подходит для I/O-bound задач
- **Сложность** - асинхронный код сложнее в написании и отладке
Пример синхронного кода:
```
import time
def task():
time.sleep(1)
print("Task done")
start = time.time()
for _ in range(3):
task()
print(f"Time: {time.time() - start:.2f}s") # ~3s
```
Пример асинхронного:
```
import asyncio
async def task():
await asyncio.sleep(1)
print("Task done")
async def main():
start = time.time()
await asyncio.gather(*[task() for _ in range(3)])
print(f"Time: {time.time() - start:.2f}s") # ~1s
asyncio.run(main())
```
Асинхронность достигается через event loop и корутины (`async/await`). Для CPU-bound задач лучше использовать многопоточность/многопроцессорность.