import asyncio max_counts = {"Counter 1": 10, "Counter 2": 5, "Counter 3": 15} delays = {"Counter 1": 1, "Counter 2": 2, "Counter 3": 0.5} async def counter(name: str, max_count: int, delay: int): for i in range(1, max_count + 1): print(f"{name}: {i}") await asyncio.sleep(delay) async def main(): tasks = [] for name, value in max_counts.items(): tasks.append(counter(name, value, delays[name])) await asyncio.gather(*tasks) asyncio.run(main())