python实现协程的两种方法
2018-12-18 09:07
134 查看
一、协程
1、通过yeild实现:
import time def work1(): """通过yeild构造一个生成器""" while True: #死循环 print("-----work1-----") yield #运行至yield时跳出函数,直到下一次next继续往下执行 time.sleep(1) def work2(): '''构造第二个生成器''' while True: print("-----work2-----") yield time.sleep(1) w1 = work1() w2 = work2() while True: #死循环让内部代码循环往复执行 next(w1) next(w1) next(w1) next(w2)
2、通过第三方gevent实现,在ubantu中比较稳定
import gevent def f1(): for i in range(5): print 'this is ' + str(i) gevent.sleep(1) #通过sleep切换函数 def f2(): for i in range(5): print 'that is ' + str(i) gevent.sleep(1) t1 = gevent.spawn(f1) t2 = gevent.spawn(f2) #赋值 gevent.joinall([t1, t2]) #加入事件
相关文章推荐
- 飘逸的python - 两种with语句实现方法
- 总结python实现父类调用两种方法的不同
- 矩阵或多维数组两种常用实现方法 - python
- python实现读取并显示图片的两种方法
- python实现嵌套列表平铺的两种方法
- Tornado协程在python2.7如何返回值(实现方法)
- Python实现列表去重的两种方法
- 使用Python实现租车计费系统的两种方法
- python用两种方法实现url短连接
- Python程序实现打开浏览器的两种方法
- 飘逸的python - 两种with语句实现方法
- python中两种实现排序的方法:冒泡排序和插入排序
- 【python学习笔记】Python实现协程yield方法和gevent库
- 两种方法实现Python二分查找算法
- python中实现上下文管理器的两种方法
- python 获取本机ip地址的两种实现方法
- python用两种方法实现url短连接
- Python实现删除排序数组中重复项的两种方法示例
- python 将对象设置为可迭代的两种实现方法
- python实现中文输出的两种方法