2017-09-19 51 views
1
import asyncio, aiohttp, logging, time, random 

pause = 1/10 

async def req(i): 
    await asyncio.sleep(random.randint(1, 5)) 

async def run(): 
    for i in range(100): 
     asyncio.ensure_future(req(i)) 
     t0 = time.time() 
     await asyncio.sleep(pause) 
     print(time.time() - t0) 
    tasks = asyncio.Task.all_tasks() 
    if len(tasks) != 1: 
     tasks.remove(asyncio.Task.current_task()) 
     await asyncio.wait(tasks) 

loop = asyncio.get_event_loop() 
loop.run_until_complete(run()) 

輸出是:爲什麼asyncio.sleep(延遲)完成超過給定的延遲更早?

output

爲什麼伺機asyncio.sleep(停頓)是0.093654s完之後????????????

回答

0

它ASYNCIO的Windows上的錯誤/功能。你可以閱讀討論here