


How to use async and await for asynchronous programming in Python
Sep 21, 2025 am 04:49 AMAsynchronous functions in Python are defined using async def, allowing non-blocking execution of I/O-bound tasks via await inside coroutines; the asyncio.run() function starts the event loop to run these coroutines, enabling concurrent task execution with asyncio.create_task() and efficient handling of operations like HTTP requests using libraries such as aiohttp.
Using async and await in Python allows you to write asynchronous code that can handle I/O-bound tasks efficiently, such as network requests or file operations, without blocking the main thread. This is done through Python’s asyncio library and coroutines.
Define Asynchronous Functions with async
To create an asynchronous function, use the async def syntax. This turns the function into a coroutine that can be paused and resumed.
async def fetch_data(): print("Start fetching") await asyncio.sleep(2) # Simulates an I/O operation print("Done fetching") return {"data": "example"}
The await keyword is used inside async functions to wait for another coroutine to complete. It only works within async functions and must be used with awaitable objects like coroutines, Tasks, or Futures.
Run Coroutines Using asyncio.run()
To execute an async function, use asyncio.run(), which creates and manages the event loop.
import asyncio <p>async def main(): result = await fetch_data() print(result)</p><p>asyncio.run(main())</p>
asyncio.run() is the recommended way to start an async program from synchronous code. It can only be called once and should not be used inside already running event loops.
Run Multiple Tasks Concurrently
To run multiple coroutines at the same time, use asyncio.create_task() to schedule them, then await their results.
async def task_one(): await asyncio.sleep(1) return "Task One Done" <p>async def task_two(): await asyncio.sleep(1) return "Task Two Done"</p><p>async def main(): task1 = asyncio.create_task(task_one()) task2 = asyncio.create_task(task_two())</p><pre class='brush:php;toolbar:false;'>result1 = await task1 result2 = await task2 print(result1, result2)
asyncio.run(main())
This runs both tasks concurrently, reducing total execution time compared to running them sequentially.
Handle Async I/O Operations (e.g., HTTP Requests)
A common use case is making HTTP requests. You can use libraries like aiohttp for async web requests.
import aiohttp import asyncio <p>async def get_page(session, url): async with session.get(url) as response: return await response.text()</p><p>async def main(): async with aiohttp.ClientSession() as session: content = await get_page(session, '<a href="http://ipnx.cn/link/9677548ee4ee2f157590053c5c5f56c4">http://ipnx.cn/link/9677548ee4ee2f157590053c5c5f56c4</a>') print(len(content))</p><p>asyncio.run(main())</p>
Install aiohttp with: pip install aiohttp
This approach allows handling many requests in parallel without blocking each other.
Basically just define async functions, use await on async calls, and run them via asyncio. It's not hard once you get the flow.
The above is the detailed content of How to use async and await for asynchronous programming in Python. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

ArtGPT
AI image generator for creative art from text prompts.

Stock Market GPT
AI powered investment research for smarter decisions

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Run pipinstall-rrequirements.txt to install the dependency package. It is recommended to create and activate the virtual environment first to avoid conflicts, ensure that the file path is correct and that the pip has been updated, and use options such as --no-deps or --user to adjust the installation behavior if necessary.

Python is a simple and powerful testing tool in Python. After installation, test files are automatically discovered according to naming rules. Write a function starting with test_ for assertion testing, use @pytest.fixture to create reusable test data, verify exceptions through pytest.raises, supports running specified tests and multiple command line options, and improves testing efficiency.

Theargparsemoduleistherecommendedwaytohandlecommand-lineargumentsinPython,providingrobustparsing,typevalidation,helpmessages,anderrorhandling;usesys.argvforsimplecasesrequiringminimalsetup.

Table of Contents What is Bitcoin Improvement Proposal (BIP)? Why is BIP so important? How does the historical BIP process work for Bitcoin Improvement Proposal (BIP)? What is a BIP type signal and how does a miner send it? Taproot and Cons of Quick Trial of BIP Conclusion?Any improvements to Bitcoin have been made since 2011 through a system called Bitcoin Improvement Proposal or “BIP.” Bitcoin Improvement Proposal (BIP) provides guidelines for how Bitcoin can develop in general, there are three possible types of BIP, two of which are related to the technological changes in Bitcoin each BIP starts with informal discussions among Bitcoin developers who can gather anywhere, including Twi

Import@contextmanagerfromcontextlibanddefineageneratorfunctionthatyieldsexactlyonce,wherecodebeforeyieldactsasenterandcodeafteryield(preferablyinfinally)actsas__exit__.2.Usethefunctioninawithstatement,wheretheyieldedvalueisaccessibleviaas,andthesetup

For beginners in data science, the core of the leap from "inexperience" to "industry expert" is continuous practice. The basis of practice is the rich and diverse data sets. Fortunately, there are a large number of websites on the Internet that offer free public data sets, which are valuable resources to improve skills and hone your skills.

Identifyrepetitivetasksworthautomating,suchasorganizingfilesorsendingemails,focusingonthosethatoccurfrequentlyandtakesignificanttime.2.UseappropriatePythonlibrarieslikeos,shutil,glob,smtplib,requests,BeautifulSoup,andseleniumforfileoperations,email,w

Big data analysis needs to focus on multi-core CPU, large-capacity memory and tiered storage. Multi-core processors such as AMDEPYC or RyzenThreadripper are preferred, taking into account the number of cores and single-core performance; memory is recommended to start with 64GB, and ECC memory is preferred to ensure data integrity; storage uses NVMeSSD (system and hot data), SATASSD (common data) and HDD (cold data) to improve overall processing efficiency.
