call_soon方法用于在协程中执行一些普通函数,在执行的时候需要使用run_forever方法,而不是使用run_until_complete方法因为该方法不是协程方法
import asyncio
def callback(sleep_times):
print(f'sleep {sleep_times} success')
def stop_loop(loop):
loop.stop()
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.call_soon(callback, 2)
loop.call_soon(stop_loop, loop)
loop.run_forever()
call_later方法在x秒后执行函数,根据等待时间长短排序,call_soon方法在该方法之前执行,call_at方法使用的是loop方法中的时间。
call_soon_threadsafe 方法则是线程安全的方法比如在在多线程中需要对一个变量进行操作就可以使用该方法
import asyncio
def callback(sleep_times):
print(f'sleep {sleep_times} success')
def stop_loop(loop):
loop.stop()
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.call_later(2, callback, 2)
now = loop.time()
loop.call_at(now, callback)
loop.call_later(3, callback, 3)
loop.call_later(1, callback, 1)
loop.run_forever()