Я написал такой код.
import asyncio
import time
import random
async def secondCoro(myId):
waiting_time = random.randint(1,5)
while 1:
print("i am {} ".format(myId))
time.sleep(waiting_time)
async def main():
for i in range (10):
await loop.create_task(secondCoro(i))
time.sleep(0.1)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
Мне нужно запустить 10 сопрограмм одновременно. Я задал случайное время сна, поэтому думаю, что вывод будет примерно таким.
i am 0
i am 2
i am 4
i am 1
i am 2
i am 8
i am 5
Но когда я запускаю этот код, он показывает только:
i am 0
i am 0
i am 0
Это достижимо? Если да, то в чем проблема в моем коде и как это исправить? Если ошибок нет, есть ли какие-нибудь способы запустить множество совместных подпрограмм?