Erlang编程语言的第一印象

和朋友切磋高并发的时候,又一次涉及了Erlang,Erlang出自名门爱立信,具有稳定性极高的虚拟机和平台库,Facebook用它实现了聊天系统,Amazon 开发了SimpleDB,最令人惊叹的是What'sApp了,高并发的处理机制令人瞩目,是时候了解一下Erlang了。

世界是并行的,Erlang程序反应了我们思考和交流的方式,人作为个体通过发送消息进行交流,如果有人死亡,其他人会注意到。
Erlang里的模块类相当于OOPL中的类,进程相当于OOPL里的对象或类实例。
并发编程可以用来提升性能,创建可扩展和容错的系统,以及编写清晰和可理解的程序来控制现实世界里的应用。
 
并发程序是以一种并发编程语言编写的程序,并发编程语言拥有用于编写并发程序的语言结构。Erlang的并发程序是由互相通信的多组顺序进程组成,一个进程就是一个轻量级的虚拟机,可以执行单个的Erlang函数,只能通过发送和接收消息来与其他进程通信。也就是说,并发性是由Erlang虚拟机提供的,并操作系统的并发控制粒度要小很多。
在Erlang里:
1)  创建和销毁进程是非常快的
2)  在进程间发送消息是非常快的
3)  进程在所有操作系统上都具有相同的行为方式
4)  可以拥有大量的进程
5)  进程间不共享内存,是完全独立的
6)  唯一的沟通方式是消息传递,每个进程都有一个邮箱与进程同步创建。
 
动态代码载入是Erlang特性之一,函数调用的总是最新模块里的最新版函数,哪怕当代码在模块里运行时重新编译了该模块也是如此。

(0)

相关推荐

  • Erlang编程语言的第一印象

    和朋友切磋高并发的时候,又一次涉及了Erlang,Erlang出自名门爱立信,具有稳定性极高的虚拟机和平台库,Facebook用它实现了聊天系统,Amazon 开发了SimpleDB,最令人惊叹的是What'sApp了,高并发的处理机制令人瞩目,是时候了解一下Erlang了. 世界是并行的,Erlang程序反应了我们思考和交流的方式,人作为个体通过发送消息进行交流,如果有人死亡,其他人会注意到. Erlang里的模块类相当于OOPL中的类,进程相当于OOPL里的对象或类实例. 并发编程可以用来提

  • Go/Python/Erlang编程语言对比分析及示例代码

    本文主要是介绍Go,从语言对比分析的角度切入.之所以选择与Python.Erlang对比,是因为做为高级语言,它们语言特性上有较大的相似性,不过最主要的原因是这几个我比较熟悉. Go的很多语言特性借鉴与它的三个祖先:C,Pascal和CSP.Go的语法.数据类型.控制流等继承于C,Go的包.面对对象等思想来源于Pascal分支,而Go最大的语言特色,基于管道通信的协程并发模型,则借鉴于CSP分支. Go/Python/Erlang语言特性对比 如<编程语言与范式>一文所说,不管语言如何层出不穷

  • JavaScript 函数式编程实践(来自IBM)第1/3页

    函数式编程简介 说到函数式编程,人们的第一印象往往是其学院派,晦涩难懂,大概只有那些蓬头散发,不修边幅,甚至有些神经质的大学教授们才会用的编程方式.这可能在历史上的某个阶段的确如此,但是近来函数式编程已经在实际应用中发挥着巨大作用了,而更有越来越多的语言不断的加入诸如 闭包,匿名函数等的支持,从某种程度上来讲,函数式编程正在逐步"同化"命令式编程. 函数式编程思想的源头可以追溯到 20 世纪 30 年代,数学家阿隆左 . 丘奇在进行一项关于问题的可计算性的研究,也就是后来的 lambd

  • 20170918 前端开发周报之JS前端开发必看

    1.用函数式编程对JavaScript进行断舍离 当从业20的JavaScript老司机学会函数式编程时,他扔掉了90%的特性,也不用面向对象了,最后发现了真爱啊!!! http://www.jb51.net/article/123958.htm 2.JavaScript作用域和闭包 作用域和闭包在JavaScript里非常重要.但是在我最初学习JavaScript的时候,却很难理解.这篇文章会用一些例子帮你理解它们.我们先从作用域开始.作用域 JavaScript的作用域限定了你可以访问哪些变

  • AngularJS实现在ng-Options加上index的解决方法

    本文实例讲述了AngularJS实现在ng-Options加上index的解决方法.分享给大家供大家参考,具体如下: Angularjs交流群中有位童学问道如何为Angular select的ng-Options像Angularjs的ng-Repeat一样加上一个索引$index. 其实对于这个问题来说Angular本身并未提供$index之类的变量供使用.但是也不是说对于这个问题我们就没有解决方案. 把这个问题换成角度来看,我们所需要的就是js数组的下标,所以我们如果我们能够在对象上加入下标,

  • 非常不错的人生经典语句

    1.一个人炫耀什么,说明内心缺少什么. 2.一个人越在意的地方,就是最令他自卑的地方. 3.人都有以第一印象定好坏的习惯,认为一个人好时,就会爱屋及乌,认为一个人不好时,就会全盘否认. 4.人越是得意的事情,越爱隐藏,越是痛苦的事情越爱小题大作. 5.这个世界既不是有钱人的世界,也不是有权人的世界,它是有心人的世界. 6.婚姻的杀手有时不是外遇,而是时间. 7.当你再也没有什么可以失去的时候,就是你开始得到的时候. 8.学习要加,骄傲要减,机会要乘,懒惰要除. 9.童年的无知可爱,少年的无知可笑

  • 40句让你坦露心声的经典句子!!

    1.一个人炫耀什么,说明内心缺少什么. 2.一个人越在意的地方,就是最令他自卑的地方. 3.人都有以第一印象定好坏的习惯,认为一个人好时,就会爱屋及乌,认为一个人不好时,就会全盘否认. 4.人越是得意的事情,越爱隐藏,越是痛苦的事情越爱小题大作. 5.这个世界既不是有钱人的世界,也不是有权人的世界,它是有心人的世界. 6.婚姻的杀手有时不是外遇,而是时间. 7.当你再也没有什么可以失去的时候,就是你开始得到的时候. 8.学习要加,骄傲要减,机会要乘,懒惰要除. 9.童年的无知可爱,少年的无知可笑

  • “按键精灵” 轻松解放你的双手

    现代社会科技的发达,出现了越来越多的自动化设备来代替普通的人力劳动,这使得工作效率大大提高.那么,有没有什么设备或是软件,能够代替人的双手来自动化操作电脑呢?答案是肯定的,今天给大家介绍的这款"按键精灵"就是这样一款软件. 一.软件基本情况 软件大小:3.3MB 软件语言:简体中文 软件下载:http://on165.driversky.com/down/qm6chs_tk.exe 软件简介:严格的说这是一款模拟鼠标键盘动作的软件.通过制作脚本,可以让按键精灵代替您的双手,自动执行一系

  • 详解Node.js中的事件机制

    前言 在前端编程中,事件的应用十分广泛,DOM上的各种事件.在Ajax大规模应用之后,异步请求更得到广泛的认同,而Ajax亦是基于事件机制的. 通常js给我们的第一印象就是运行在客户端浏览器上面的脚本,通过node.js我们可以在服务端运行javascript. node.js是基于单线程无阻塞异步式的I/O,异步式的I/O指的是当遇到I/O操作的时候,线程不阻塞而是进行下面的操作,那么I/O操作完成之后,线程时如何知道该操作完成的呢? 当操作完成耗时的I/O操作之后,会以事件的形式通知I/O操

  • ios弹幕高效加载实现方式实例代码

    看直播的童鞋们应该会经常看到满屏幕的滚动弹幕,看到密密麻麻的弹幕第一印象就是怎么样高效加载来避免卡顿,弹幕组成部分包含用户头像.用户昵称.弹幕的内容.表情等,本文介绍的实现原理就是把这几部分绘制成一张图片,然后通过定时器移动弹幕图片,当图片不在屏幕范围内即销毁. 先看下效果 下面我会详细介绍下实现原理 1 .获取弹幕数据来源,因为我是模拟生成弹幕,弹幕的数据存放在工程里的plist文件中 emotions存放这条弹幕的表情,type表示是否是自己发的,text表示弹幕内容,userName表示用

随机推荐