что происходит, когда 2 разные функции вызывают одну и ту же функцию? - PullRequest
0 голосов
/ 22 мая 2018

Я экспериментировал с Asyncio на python и думал, что произойдет, если вызвать 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Спасибо.

`

...