赞
踩
大多数异步程序实现异步的基本机制是通过在后台执行的事件循环。当有代码需要执行时,这些代码才会被注册到事件循环中
摘自:Python高级编程
在大多数情况下,并不需要创建一个事件循环对象。可以通过asyncio.get_event_loop()函数返回一个BaseEventLoop对象。
import asyncio
#获取一个事件循环对象(BaseEventLoop对象)
loop=asyncio.get_event_loop()
#事件死循环
loop.run_forever()
import asyncio import functools #获取一个事件循环对象(BaseEventLoop对象) loop=asyncio.get_event_loop() def stop_loop(loop): print('Stopping loop') #用于停止循环 loop.stop() def hello_world(): print('hello world') ''' call_soon用于将任务注册到循环中 未使用偏函数的任务注册 loop.call_soon(print,'hello world') loop.call_soon(stop_loop,loop) 使用偏函数的任务注册 ''' loop.call_soon(functools.partial(print,'Hello World')) loop.call_soon(functools.partial(stop_loop,loop)) #执行循环 loop.run_forever()
#注册晚一点被调用的任务,时间单位是秒
loop.call_later(10,hello_world)
loop.call_later(20,functools.partial(stop_loop,loop))
import asyncio
#装饰器的作用是将普通的Python函数转换为一个协程
@asyncio.coroutine
def trivial():
return 'Hello World'
loop=asyncio.get_event_loop()
#任务注册,并在任务结束前执行循环
ret=loop.run_until_complete(trivial())
print(ret)
import asyncio
import threading
def run_loop_forever_in_background(loop):
def
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。