Python 高级编程和异步IO并发编程 --13_4 call_soon,call_at,call_soon_threadsafe

import asyncio

def callback(sleep_time):
    print("sleep {} success".format(sleep_time))
    
if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    loop.call_soon(callback,2)
    loop.run_forever()   # 此时,程序会一致执行,不会停止
sleep 2 success
import asyncio

def callback(sleep_time):
    print("sleep {} success".format(sleep_time))

def stoploop(loop):
    loop.stop()

if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    loop.call_soon(callback,2)
    loop.call_soon(stoploop,loop)
    loop.run_forever()
import asyncio

def callback(sleep_time):
    print("sleep {} success".format(sleep_time))

def stoploop(loop):
    loop.stop()

# call later
if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    loop.call_later(2,callback,2)
    loop.call_later(1,callback,1)
    loop.call_later(3,callback,3)
    loop.call_soon(callback,4)  # call_soon的优先级优先于call_later
    loop.run_forever()
sleep 4 success
sleep 1 success
sleep 2 success
sleep 3 success
import asyncio

def callback(sleep_time):
    print("sleep {} success".format(sleep_time))

def stoploop(loop):
    loop.stop()

# call_later,call_at
if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    now = loop.time()
    loop.call_at(now+2,callback,2)
    loop.call_at(now+1,callback,1)
    loop.call_at(now+3,callback,3)
    loop.call_soon(callback,4)  # call_soon的优先级优先于call_later
    loop.run_forever()
sleep 4 success
sleep 1 success
sleep 2 success
sleep 3 success
import asyncio

def callback(sleep_time,loop):
    print("sleep time{} success".format(loop.time()))

def stoploop(loop):
    loop.stop()

# call_later,call_at
if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    now = loop.time()
    loop.call_at(now+2,callback,2,loop)
    loop.call_at(now+1,callback,1,loop)
    loop.call_at(now+3,callback,3,loop)
    loop.call_soon(callback,4,loop)  # call_soon的优先级优先于call_later
    loop.run_forever()
sleep time369109.515 success
sleep time369110.531 success
sleep time369111.515 success
sleep time369112.531 success
发布了380 篇原创文章 · 获赞 129 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/f2157120/article/details/105398175