Junior — Middle
Can you give an example of a situation where asynchronous code runs slower than expected?
sobes.tech AI
Answer from AI
Asynchronous code can run slower than expected if the tasks it performs are CPU-bound rather than I/O-bound. For example, if asynchronous code launches many computationally intensive operations, due to Python's GIL (Global Interpreter Lock), these operations cannot run in parallel, and context switching between coroutines will add overhead.
It can also be slower due to frequent context switching between tasks or if asynchronous code improperly uses await, causing unnecessary waiting.
Example:
import asyncio
async def cpu_bound_task(x):
# simulate a heavy computational task
count = 0
for i in range(10**7):
count += i * x
return count
async def main():
tasks = [cpu_bound_task(i) for i in range(5)]
results = await asyncio.gather(*tasks)
print(results)
asyncio.run(main())
In this example, asynchrony will not speed up execution because the tasks are CPU-bound and are executed sequentially due to the GIL.