TGViewer
Python вопросы с собеседований Python вопросы с собеседований @python_job_interview · 24.9K subscribers
Post #837 5.16K
❓ Как вы можете использовать asyncio для написания асинхронного кода в Python, и какие преимущества и недостатки вы видите в использовании асинхронного программирования по сравнению с многопоточностью? Приведите примеры.

❗️ asyncio — это стандартная библиотека Python для написания асинхронного кода. Она позволяет использовать синтаксис async и await, чтобы писать неблокирующий код. Вот простой пример использования asyncio:

import asyncio

async def fetch_data(url):
print(f"Fetching data from {url}...")
await asyncio.sleep(2) # Имитация сетевого запроса
print(f"Data from {url} fetched.")
return f"Data from {url}"

async def main():
urls = ["http://example.com/1", "http://example.com/2", "http://example.com/3"]
tasks = [fetch_data(url) for url in urls]
results = await asyncio.gather(*tasks)
print(results)

asyncio.run(main())



В этом примере несколько задач выполняются одновременно, хотя каждая из них вызывает асинхронное ожидание (с использованием `await asyncio.sleep(2)`), что позволяет другим задачам продолжать выполнение.

💡 Почему асинхронное программирование?

🌟 Легковесность: Асинхронные задачи используют меньше ресурсов по сравнению с потоками, так как все они работают в одном потоке и управляются одним циклом событий.

🌟 Производительность: Асинхронное программирование позволяет лучше справляться с задачами ввода-вывода (I/O), такими как сетевые запросы и операции с файлами, так как они могут выполняться без блокировки основного потока.

🌟 Упрощение кода: Асинхронные функции легче понимать и поддерживать, так как они работают с синтаксисом `async`/`await`, который более декларативен.

💡 Почему НЕ асинхронное программирование?

🌟 Сложность отладки: Асинхронный код может быть труднее отлаживать, так как ошибки могут возникать в различных частях кода и не всегда очевидны.

🌟 Не для всех задач: Не все задачи требуют асинхронного подхода. Для вычислительно интенсивных задач многопоточность или multiprocessing может быть более подходящим выбором

@python_job_interview
  • 👍 12
  • ❤ 11
  • 👌 6
More from @python_job_interview
  1. Sep 26, 2026Octop - open-source платформа, где можно запускать сразу несколько AI-агентов для себя, се…
  2. Sep 23, 2026Визуализация данных на Python: 10 лучших примеров с кодом Визуализация данных на Python -…
  3. Sep 22, 2026Как правильно получить случайное число в Python Если нужен диапазон от 1 до 100 включитель…
  4. Sep 19, 2026✔️ Кто подключился к вашей сети? NetAlertX обнаруживает устройства и уведомляет об изменен…
  5. Sep 18, 2026✔️ QuiverAI выпустила обновление генератора векторной графики Во второе поколение семейств…
  6. Sep 17, 2026📚 Бесплатная книга по математике для Computer Science и Machine Learning - более 2200 стр…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →