Работал ли с асинхронным кодом
Python
Senior
Без компании
Работал ли с асинхронным кодом
Ответы
Да, работал с асинхронным кодом в Python, используя `asyncio` и `async/await`. Основные преимущества - эффективность при I/O-bound задачах (сетевые запросы, работа с БД) и возможность писать конкурентный код без потоков.
Пример простого асинхронного HTTP-клиента:
```
import aiohttp
import asyncio
async def fetch_url(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
return await response.text()
async def main():
urls = ['http://example.com', 'http://example.org']
tasks = [fetch_url(url) for url in urls]
results = await asyncio.gather(*tasks)
print(results)
asyncio.run(main())
```
Ключевые моменты:
- `async def` для асинхронных функций
- `await` для ожидания результата корутины
- `asyncio.gather` для параллельного выполнения
- `asyncio.run` для запуска event loop
Важно помнить про GIL - асинхронность не ускоряет CPU-bound задачи. Также нужно аккуратно работать с блокирующими вызовами.