`
qiezi
  • 浏览: 500859 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

erlang的设计思想能不能移植到ruby里面来?

阅读更多
erlang比较先进的地方大概就是它的并行工作方式,我一直在想为什么别的语言没有实现类似的玩意?这几天简单想了想,移植到其它语言应该可以的。

erlang核心是一个消息系统,可以在进程之间发送消息,而进程则不限于同一台机器。

在不遇机器之间发送消息当然是通过socket,本机进程之间则有多种方式可选,可以通过共享内存来高效实现。本机的多个进程和其它机器的多个进程的通讯如何管理?要有一个管理程序负责网络部分的发送的接收。机器之间的消息传递先发给它,由它转发到另外机器上一个相同功能的管理程序上,再分发给目标进程。

然后就是每个进程各自维护消息队列,处理消息接收及发送,似乎也不是那么复杂。spawn可能稍麻烦点,进程要是fork出来还比较方便,如果是新开进程的话该怎么传递方法入口?ruby不像C有静态函数地址,不知道erlang是怎么做这个的,难道是传递方法名字字符串?
分享到:
评论
3 楼 cookoo 2006-10-28  
是啊,需要模拟转换。先不说这样做的开销,本来用异步就是要避免同步锁,还要模拟岂不是有违初衷?
2 楼 qiezi 2006-10-27  
。。你们在那边讨论满多嘛,怎么那边无法用RSS订阅呢?
引用

比如Python就算用twisted,但是别的库比如数据库的driver不是按同样思路设计的,就容易block掉。

这点看得不是很明白,如果这里block指的是某些库的阻塞,应该是有其它办法做掉的。一般同步模拟异步是另开线程,异步模拟同步则是利用等待锁。只是同步模拟异步时可能有大量线程需要管理。
1 楼 cookoo 2006-10-27  
前两天和code17讨论了一下FP语言的并发问题:http://ocaml.cn/node/211

Erlang消息传递可不可以在别的语言实现?当然可以,比如Python的twisted框架。但是在不限制side effect的语言里,很难完全避免锁的问题。比如Python就算用twisted,但是别的库比如数据库的driver不是按同样思路设计的,就容易block掉。

据T1说,Erlang的VM针对其pure的特点(除了IO)还有特别优化,这就不懂咯~

相关推荐

    Erlang程序设计(第2版)1

    总的来说,这本书全面覆盖了Erlang编程的各个方面,从基础语法到高级特性,从并发编程到分布式系统设计,是学习和理解Erlang的宝贵资源。对于想要利用Erlang开发高并发、高可用性的系统的人来说,这本书无疑是一本不...

    erlang 设计指南

    **Erlang设计指南** Erlang是一种面向并发的、函数式编程语言,它由瑞典电信设备制造商Ericsson开发,主要用于构建高度可扩展和容错性强的分布式系统。"Programming Erlang: Software for a Concurrent World"是Joe...

    erlang 程序设计 源码

    通过对这些知识点的理解,我们可以深入到Erlang程序设计的精髓,从而更好地学习和利用Erlang编写出高效、可靠的系统。在`code`这个文件中,你可以找到实际的源码,通过阅读和分析,将理论知识与实践相结合,提升对...

    erlang25.0 windows版本

    总的来说,Erlang 25.0为Windows用户带来了一个更新的、优化的并发编程环境,无论是用于开发分布式系统、实时应用还是其他领域,都能从中受益。如果你是Erlang开发者或对此感兴趣,安装这个新版本将有助于你利用最新...

    erlang编程 Introducing Erlang

    **Erlang编程:Introducing Erlang** Erlang是一种函数式编程语言,由爱立信在1986年开发,主要用于构建高可用性、容错性和并发性的分布式系统。"Introducing Erlang"是Simon St. Laurent撰写的一本入门级教程,...

    erlang趣学指南

    Erlang是一门专为构建并发、容错的分布式系统而设计的编程语言,最早由瑞典电信设备公司爱立信所开发。其关键特性包括轻量级进程、消息传递、容错机制以及一个用于构建可靠系统的函数库和中间件,统称为Open Telecom...

    erlang 语言程序设计

    它通过“让进程失败”这一哲学思想来构建高度可靠的应用程序。当某个进程发生故障时,可以通过监控和重启机制确保整个系统的稳定运行。 3. **函数式编程**:虽然Erlang支持过程式编程风格,但它本质上是一种函数式...

    Erlang编程

    - **服务器**:服务器作为并发处理的重要场景,Erlang能提供稳定的并发服务。 #### 重点知识 1. **并发的必要性**: - 现实世界是并行的,现实生活中的对象和活动往往需要同时进行,要想编写程序模拟现实世界的...

    xiandiao_erlang_Erlang课后习题_

    1. **函数式编程**:Erlang基于函数式编程范式,强调无副作用的纯函数,以及通过数据不可变性来简化并发处理。在Erlang中,程序是由一系列相互独立的函数构成的,它们可以并行执行,提高了系统的性能。 2. **并发与...

    erlang_版本24.3.4.4

    - **OTP(开放电信平台)**:Erlang OTP是一套库和设计原则,提供了构建可靠系统的框架,包括Mnesia数据库、Event Manager、Supervisor和GenServer等行为模块。 学习Erlang时,你需要掌握以下核心概念: - **BEAM...

    Erlang官网下载过慢

    标题中提到的“Erlang官网下载过慢”可能是因为网络问题或者官方服务器的繁忙导致的,这对于急需安装或更新Erlang的开发者来说是一个常见问题。在这种情况下,用户可以选择通过第三方镜像站点或者从他人分享的安装包...

    Erlang23_3.zip

    提及到"windows32为64位",这意味着虽然Erlang本身是一个跨平台的语言,但这个特定的版本提供了64位的Windows支持。在32位操作系统上运行64位软件通常是不被支持的,所以这里可能指的是64位的Windows用户可以使用这...

    图书:Erlang和OTP实战

    在《Erlang和OTP实战》中,作者详细讲解了如何使用Erlang的语法和函数式编程思想,以及如何利用OTP进行系统设计。书中可能涵盖以下知识点: 1. Erlang的基础语法:包括模式匹配、递归、过程(process)和数据类型等...

    erlang资源

    Erlang是一种面向并发的、函数式编程语言,由瑞典...这两本书结合阅读,将为初学者提供一个全面的Erlang学习路径,从基础语法到高级并发编程技巧,有助于深入理解Erlang语言及其在构建高并发、分布式系统中的强大能力。

    Programming Erlang.pdf

    ”这意味着Erlang的设计不仅仅是技术上的,还考虑到了人类的认知习惯。Erlang的编程模式和思想更接近于人们日常解决问题的方式,从而降低了学习和使用的门槛。 ### 4. 作者及出版社信息 本书《Programming Erlang...

    ErlangB和ErlangC计算工具(exe可执行文件+excel两个)

    总的来说,Erlang B和Erlang C模型是电信系统设计中的基础工具,而提供的计算工具则是将理论转化为实践的关键桥梁。通过这些工具,我们可以更深入地理解通信网络的性能瓶颈,并制定相应的优化方案,以提高服务质量和...

    erlang programming

    通过对以上知识点的学习和实践,开发者可以利用Erlang的强大功能来创建高可靠性、高并发的分布式系统。 erlang-book-part1.pdf可能涵盖其中的一些或全部内容,为读者提供全面的Erlang编程指导。

    Erlang 20.3linux安装包

    "Erlang 20.3linux安装包"可能是一个为Linux系统设计的Erlang特定版本的安装包,它包含了所有必要的文件和库,以便在Linux上安装和运行Erlang 20.3。 安装Erlang的步骤一般如下: 1. **下载**:你可以从Erlang ...

    Erlang和RabbitMQ安装包

    总结来说,Erlang和RabbitMQ是构建高并发、分布式系统的重要工具,RabbitMQ利用Erlang的强大特性提供了稳定、高效的消息传递服务。理解并熟练掌握这两者,对于开发大规模、高可用性的应用程序具有重要意义。

    erlang22最新下载包

    对于开发者来说,了解这些更新和变化至关重要,因为它们可能影响到现有项目的行为,或者提供新的工具和技术来解决特定问题。学习和掌握Erlang22的新特性有助于提升开发效率和应用质量,特别是在构建高并发、分布式...

Global site tag (gtag.js) - Google Analytics