Code Explanation:
1. Importing the asyncio module
import asyncio
The asyncio module is Python’s built-in library for asynchronous programming.
It allows you to run multiple tasks concurrently (i.e., at the same time) using the async/await syntax.
You use it when you want to handle many tasks (like I/O operations) without blocking the main thread.
2. Defining an asynchronous function (task)
async def task(n):
await asyncio.sleep(0.1)
return n * 2
async def defines a coroutine — a special kind of function that can be paused and resumed.
The function task(n):
Takes one argument n.
Uses await asyncio.sleep(0.1) to pause execution for 0.1 seconds without blocking other tasks.
This simulates an I/O operation (like fetching data from the internet).
After waiting, it returns n * 2.
So if you call await task(3), it will eventually return 6.
3. Defining the main asynchronous function
async def main():
res = await asyncio.gather(task(2), task(3), task(4))
print(sum(res))
Another coroutine, main(), is defined.
Inside it:
asyncio.gather(task(2), task(3), task(4)) runs three tasks concurrently.
All three task() calls start at the same time.
Each waits for 0.1 seconds (at the same time), so total wait time is about 0.1s, not 0.3s.
await waits for all tasks to finish and collects their results in a list: [4, 6, 8].
Then, sum(res) adds them up → 4 + 6 + 8 = 18.
Finally, it prints 18.
4. Running the event loop
asyncio.run(main())
asyncio.run() starts the event loop — the system that manages and executes asynchronous tasks.
It runs the main() coroutine until it finishes.
After completion, it closes the event loop automatically.
5. Final Output
When you run the code, you’ll see:
18
.png)

0 Comments:
Post a Comment