快速业务通道

冒号课堂§2.4:并发范式 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
专门为并发式而设计的语言大多仅限于学术研究而非商业应用,Erlang语言[2]是少数的例外。顺带提一下,前面提到的声明式语言具有无副作用的特性,尤其适合于并发式编程。”

冒号课堂§2.4:并发范式(3)

时间:2011-06-25 BlogJava xyz98

问号提了一个听似奇怪的问题:“并发式与前面提到的对象式有无共通之处?”

“并发式与对象式虽是互相正交的两种范式,倒真有些相通呢。”冒号回答,“它们均与三大核心范式正交,并且越来越广泛地向它们渗透着;均为传统编程的一种推广——并发式进程的个数为一时即为传统的串行式编程,对象的方法个数为为零即为传统的数据类型;均将整个程序系统分解为若干独立的子系统,不同的是一个以任务为单位,一个以对象为单位;子系统之间均能交流与合作,不同的是一个以竞争为主题,一个以服务为主题。如果将程序系统视作公司,那么并发式系统是产品型公司,每个进程是一名工人,其职责是执行单一任务;对象式系统是服务型公司,每个对象是一名服务员,其职责是提供系列服务。由此可见,一名优秀的程序设计师也应该是一名优秀的管理者。”

句号提出:“迄今为止我们谈到了五种范式,能否对它们简单概括一下?”

“你提问的时机把握得不错嘛。”冒号开始如数家珍,“为便于记忆,我们不妨用‘一二三四五’来概括编程范式之最:最传统的一个是命令式;最基本的两个是命令式和声明式;最核心的三个是命令式、函数式和逻辑式;最主要的四个是命令式、函数式、逻辑式和对象式;最重要的五个是命令式、函数式、逻辑式、对象式和并发式。最后,我们来对比一下五大范式。”

少顷,黑板上出现几行排比句——

过程式:以过程为模块的君主体系,模块之间互相授命与听命

函数式:以函数为模块的数学体系,模块之间互相替换与合成

逻辑式:以断言为模块的逻辑体系,模块之间互相归纳与演绎

对象式:以对象为模块的民主体系,模块之间互相交流与服务

并发式:以进程为模块的生产体系,模块之间互相竞争与合作

“说回并发式编程,它要求我们摆脱以往习惯的按部就班的思维方式,对编程提出了更高的挑战。程序世界与现实世界一样,呈百舸争流、千帆竞发之势,不进则退啊!”言讫,冒号宣布,“第二堂课到此为止,欢迎下次光临。”

,插语

[1] 并发式编程中以进程(process)或线程(thread)为基本单位。尽管它们有很大的差异,但为简明起见,这里不加区分地交替使用两个术语。

[2] Erlang是由爱立信开发的一种通用编程语言,支持函数式和并发式。

。总结

并发式编程以进程为导向、以任务为中心、以资源共享与竞争为主线。

并发式编程有助于提高运行效率、充分利用资源、提高软件的响应能力、改善用户体验,同时以进程为单位将系统模块化,更加真实地模拟现实世界。

合理的并发式设计应该做到:软件易于重用、维护和测试;有效地利用资源,优化程序性能;保障进程安全和活性;减少性能损失和复杂度。

对象式和并发式在传统编程的基础上,分别从不同的方向进行拓展:对象式在数据类型上进行推广——允许运算作为数据类型的成员;并发式在执行顺序上进行推广——允许不同运算的执行在时间上交替或者重合。它们与三大核心范式一道,组成了最重要的五大编程范式。

冒号课堂§2.4:并发范式(4)

时间:2011-06-25 BlogJava xyz98

五大重要范式对比:

范式 体系 模块 模块关系
过程式 君主体系 过程 授命与听命
函数式 数学体系 函数 替换与合成
逻辑式 逻辑体系 断言 归纳与演绎
对象式 民主体系 对象 交流与服务
并发式 生产体系 进程 竞争与合作

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号