当两个不同的函数调用相同的函数时会发生什么?

时间:2018-05-22 12:31:04

标签: python python-3.x function asynchronous python-asyncio

我正在使用python中的Asyncio进行实验,并想到如果调用2个不同的Asyncio函数同时运行到非异步函数会发生什么。 所以这样做了吗?

def calc(number):
    while True:
        return(number * number)

async def one():
    while True:
        a = calc(5)
        print(a)
        await asyncio.sleep(0)

async def two():
    while True:
        a = calc(2)
        print(a)
        await asyncio.sleep(0) 

if __name__=='__main__':
    import os
    import uvloop
    import asyncio
    loop = uvloop.new_event_loop()
    asyncio.set_event_loop(loop)
    loop.create_task(one()) 
    loop.create_task(two())
    loop.run_forever()

我以为程序会在cal函数中冻结(while循环),但程序同时打印结果。任何人都可以解释为什么这不会卡在while循环中,谢谢。

`

0 个答案:

没有答案