您的位置:首页 > 编程语言 > Python开发

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)。为了利用多核计算机和分布式编程的优势,并发将很快成为做事方式(编程)的事实标准。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: