Stackless Python
2014-04-10 13:49
190 查看
http://baike.baidu.com/link?url=JOj5aqWaL22ZnHf3lcUM3NctVEi7JMwD5LwiuCMkc8m6AFLZ6nreC-m8J-nbpUqpuivf9SC9WIxHYw042rcogK
Stackless Python 是Python编程语言的一个增强版本,它使程序员从基于线程的编程方式中获得好处,并避免传统线程所带来的性能与复杂度问题。Stackless为 Python带来的微线程扩展,是一种低开销、轻量级的便利工具,如果使用得当,可以获益如下:
(1)改进程序结构
(2)增进代码可读性
(3)提高编程人员生产力
以上是Stackless Python很简明的释义,但其对我们意义何在?——就在于Stackless提供的并发建模工具,比目前其它大多数传统编程语言所提供的工具都更加易用: 不仅用于Python自身,也包括Java、C++,以及其它语言。尽管还有其他一些语言提供并发特性,可它们要么是主要用于学术研究的(如
Mozart/Oz),要么是极少使用、或用于特殊目的的专业语言(如Erlang)。而使用stackless,你将会在Python本身的所有优势之外,在一个(但愿)你已经非常熟悉的环境中,额外获得并发的特性。
这自然引出了个问题:为什么要并发?
现实世界就是“并发”的,它是由一群事物(或“演员”)所组成,而这些事物以一种对彼此所知有限的、散耦合的方式相互作用。传说中面向对象编程有一个好处,就是对象能够对现实的世界进行模拟。这在一定程度上是正确的,面向对象编程很好地模拟了对象个体,但对于这些对象个体之间的交互,却无法以一种理想的方式来表现。例如,如下代码实例,有什么问题?
def familyTacoNight():
husband.eat(dinner)
wife.eat(dinner)
son.eat(dinner)
daughter.eat(dinner)
第一印象,没问题。但是,上例中存在一个微妙的安排:所有事件是次序发生的,即:直到丈夫吃完饭,妻子才开始吃;儿子则一直等到母亲吃完才吃;而女儿则是最后一个。在现实世界中,哪怕是丈夫还堵车在路上,妻子、儿子和女儿仍然可以该吃就吃,而要在上例中的话,他们只能饿死了——甚至更糟:永远没有人会知道这件事,因为他们永远不会有机会抛出一个异常来通知这个世界!
我个人相信,并发将是软件世界里的下一个重要范式。随着程序变得更加复杂和耗费资源,我们已经不能指望摩尔定律来每年给我们提供更快的CPU了,当前,日常使用的个人计算机的性能提升来自于多核与多CPU机制。一旦单个CPU的性能达到极限,软件开发者们将不得不转向分布式模型,靠多台计算机的互相协作来建立强大的应用(想想GooglePlex)。为了利用多核计算机和分布式编程的优势,并发将很快成为做事方式(编程)的事实标准。
Stackless Python 是Python编程语言的一个增强版本,它使程序员从基于线程的编程方式中获得好处,并避免传统线程所带来的性能与复杂度问题。Stackless为 Python带来的微线程扩展,是一种低开销、轻量级的便利工具,如果使用得当,可以获益如下:
(1)改进程序结构
(2)增进代码可读性
(3)提高编程人员生产力
以上是Stackless Python很简明的释义,但其对我们意义何在?——就在于Stackless提供的并发建模工具,比目前其它大多数传统编程语言所提供的工具都更加易用: 不仅用于Python自身,也包括Java、C++,以及其它语言。尽管还有其他一些语言提供并发特性,可它们要么是主要用于学术研究的(如
Mozart/Oz),要么是极少使用、或用于特殊目的的专业语言(如Erlang)。而使用stackless,你将会在Python本身的所有优势之外,在一个(但愿)你已经非常熟悉的环境中,额外获得并发的特性。
这自然引出了个问题:为什么要并发?
现实世界就是并发的
现实世界就是“并发”的,它是由一群事物(或“演员”)所组成,而这些事物以一种对彼此所知有限的、散耦合的方式相互作用。传说中面向对象编程有一个好处,就是对象能够对现实的世界进行模拟。这在一定程度上是正确的,面向对象编程很好地模拟了对象个体,但对于这些对象个体之间的交互,却无法以一种理想的方式来表现。例如,如下代码实例,有什么问题?def familyTacoNight():
husband.eat(dinner)
wife.eat(dinner)
son.eat(dinner)
daughter.eat(dinner)
第一印象,没问题。但是,上例中存在一个微妙的安排:所有事件是次序发生的,即:直到丈夫吃完饭,妻子才开始吃;儿子则一直等到母亲吃完才吃;而女儿则是最后一个。在现实世界中,哪怕是丈夫还堵车在路上,妻子、儿子和女儿仍然可以该吃就吃,而要在上例中的话,他们只能饿死了——甚至更糟:永远没有人会知道这件事,因为他们永远不会有机会抛出一个异常来通知这个世界!
并发可能是下一个重要的编程范式
我个人相信,并发将是软件世界里的下一个重要范式。随着程序变得更加复杂和耗费资源,我们已经不能指望摩尔定律来每年给我们提供更快的CPU了,当前,日常使用的个人计算机的性能提升来自于多核与多CPU机制。一旦单个CPU的性能达到极限,软件开发者们将不得不转向分布式模型,靠多台计算机的互相协作来建立强大的应用(想想GooglePlex)。为了利用多核计算机和分布式编程的优势,并发将很快成为做事方式(编程)的事实标准。
相关文章推荐
- Stackless Python安装详细操作手册
- Stackless Python 并发式编程介绍
- ubuntu python stackless ,install python stackless on ubuntu
- stackless python改prime number一则
- stackless python如何给tasklet加锁
- Stackless Python并发式编程介绍
- 编译 stackless python
- stackless python hackysack问题续
- Stackless Python安装详细操作手册
- UBUNTU10.04安装stackless python运行高性能服务器
- Python(Stackless) + MongoDB Apache 日志(2G)分析
- stackless python的疑问
- stackless python
- UBUNTU10.04安装stackless python运行高性能服务器
- Stackless Python并发式编程介绍
- 对stackless python很失望
- 高性能python编程之协程(stackless)
- Gamebryo2.5 和 stackless Python的联合调试配置
- install stackless python on ubuntu
- Stackless Python 是什么--作者采访