码迷,mamicode.com
首页 > 编程语言 > 详细

python3.4的asyncio用法

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

标签:实现   3.4   text   class   sleep   color   task   tar   演示   

 

关于异步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用法

标签:实现   3.4   text   class   sleep   color   task   tar   演示   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!