并发:事件循环 & asyncio

2020-08-01  本文已影响0人  dex0423

1. 事件循环机制

1.1. 什么是事件循环

1.2. 事件循环执行机制

任务队列中的可以分成两种,一种是同步任务(synchronous),另一种是异步任务(asynchronous)。同步任务指的是,在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务;异步任务指的是,不进入主线程、而进入"任务队列"(task queue)的任务,只有"任务队列"通知主线程,某个异步任务可以执行了,该任务才会进入主线程执行。

所谓"回调函数"(callback),就是那些会被主线程挂起来的代码。异步任务必须指定回调函数,当主线程开始执行异步任务,就是执行对应的回调函数。

1.3. 事件循环的作用

loop = get_event_loop()                                         # 获取当前上下文的事件循环
loop.call_later(time_delay, callback, argument)                 # 在给定的时间延迟秒之后调用回调函数
loop.call_soon(callback, argument)                              # 当控制返回到事件循环时调用
loop.time()                                                     # 根据事件循环的内部时钟将当前时间返回
asyncio.set_event_loop()                                        # 设置当前上下文的事件循环为循环
asyncio.new_event_loop()                                        # 根据策略的规则创建并返回一个新的事件循环对象
loop.run_forever()                                              # 永远运行直到调用stop()

2. 事件循环 & asyncio

上一篇下一篇

猜你喜欢

热点阅读