python greenlet 轻量级并行处理
来源:互联网 发布:Java接口技术 编辑:程序博客网 时间:2024/05/01 22:20
Luo Weifeng 2011-8-28
并行化处理目前很受重视, 因为在很多时候,并行计算能大大的提高系统吞吐量,尤其在现在多核多处理器的时代, 所以像lisp这种古老的语言又被人们重新拿了起来, 函数式编程也越来越流行。 这里,我介绍一个python的并行处理的一个库: greenlet。 python 有一个非常有名的库叫做 stackless ,用来做并发处理, 主要是弄了个叫做tasklet的微线程的东西, 而greenlet 跟stackless的最大区别是, 他很轻量级?不够, 最大的区别是greenlet需要你自己来处理线程切换, 就是说,你需要自己指定现在执行哪个greenlet再执行哪个greenlet。 废话不说,贴个demo:
参见: http://codespeak.net/py/0.9.2/greenlet.html
from greenlet import greenletdef test1(): print 12 gr2.switch() print 34def test2(): print 56 gr1.switch() print 78gr1 = greenlet(test1)gr2 = greenlet(test2)gr1.switch()
这里, 默认的这个环境是一个main greenlet, 在它的内部创建了gr1, gr2 两个子greenlet, gr1.switch 让gr1开始执行, gr1 首先打印12 然后主动将控制权交给 gr2 ,打印 56 然后,gr2又将控制权交给了gr1, 打印34, gr1执行完了后会产生 GreenletExit 时间退回到父greenlet,这里是main, 执行完毕。 不会打印 78.
- python greenlet 轻量级并行处理
- python greenlet
- Python greenlet
- [译文]greenlet:轻量级并发程序
- python greenlet 实现机制
- Python 之 greenlet
- python greenlet实现机制
- Python之greenlet学习
- Python——greenlet
- python 并行处理
- Python并行处理
- Python并行处理
- Python并行处理
- 用 greenlet 协程处理异步事件
- python协程入门(greenlet)
- python greenlet背景介绍与实现机制
- python并发编程greenlet模块学习
- 使用greenlet如何实现Python中的并发?
- FlexRay
- PostgreSQL与Innodb并发控制大比拼
- 你有机会建立起属于自己的王国,属于自己的传说吗?
- POJ1087 A Plug for UNIX 二分图最大匹配
- Boost下载安装编译配置使用指南(含Windows和Linux)
- python greenlet 轻量级并行处理
- 赤手空拳如何成就百万富翁?——网络营销之二(第一招:百度推广)
- 很简单的内核模块A+B
- 5个jQuery常用代码片段
- 数据结构小知识点汇总。(待累积)
- 有得有失,殊途同归(1)
- 帮学院里一个10级童鞋宣传的一个社会调查——“我与计算机专业” 走过路过的帮忙下吧。。。~先谢谢啦~
- 一步步学Qt,第四天-Qt 建立MainWindow的小小bug处理
- Linux服务器性能评估与优化