首页 > 编程语言 > 详细

python3.4的asyncio用法

时间:2017-12-04 23:23:32      阅读:375      评论:0      收藏:0      [点我收藏+]

 

关于异步IO,在Python3.4中可以使用asyncio标准库。该标准库支持一个时间循环模型(EventLoop),我们声明协程,然后将其加入到EventLoop中,即可实现异步IO。

Python中也有一个关于异步IO的很经典的HelloWorld程序(同样参考于廖雪峰教程):

 1 # 异步IO例子:适配Python3.4,使用asyncio库
 2 @asyncio.coroutine
 3 def hello(index):                   # 通过装饰器asyncio.coroutine定义协程
 4     print(Hello world! index=%s, thread=%s % (index, threading.currentThread()))
 5     yield from asyncio.sleep(1)     # 模拟IO任务
 6     print(Hello again! index=%s, thread=%s % (index, threading.currentThread()))
 7 
 8 loop = asyncio.get_event_loop()     # 得到一个事件循环模型
 9 tasks = [hello(1), hello(2)]        # 初始化任务列表
10 loop.run_until_complete(asyncio.wait(tasks))    # 执行任务
11 loop.close()                        # 关闭事件循环列表

 

同样这里的代码添加了注释,并增加了index参数。输出currentThread的目的是演示当前程序都是在一个线程中执行的。返回结果如下:

Hello world! index=1, thread=<_MainThread(MainThread, started 14816)>
Hello world! index=2, thread=<_MainThread(MainThread, started 14816)>
Hello again! index=1, thread=<_MainThread(MainThread, started 14816)>
Hello again! index=2, thread=<_MainThread(MainThread, started 14816)>

python3.4的asyncio用法

原文:http://www.cnblogs.com/Huangsh2017Come-on/p/7979238.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!