import asyncio
import time

async def async_io_bound_task(id):
    print(f"Task {id} starting I/O-bound work")
    await asyncio.sleep(2)  # Simulates async I/O delay
    print(f"Task {id} finished I/O-bound work")

async def main():
    tasks = [async_io_bound_task(i) for i in range(4)]
    await asyncio.gather(*tasks)

start_time = time.time()
asyncio.run(main())
print("Total time with asyncio:", time.time() - start_time)
