Erlang编程语言详细介绍:

Posted 程序大官猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Erlang编程语言详细介绍:相关的知识,希望对你有一定的参考价值。

Erlang语言:是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境.


Erlang出自名门爱立信,具有稳定性极高的虚拟机和平台库,Facebook用它实现了聊天系统,Amazon 开发了SimpleDB,最令人惊叹的是What'sApp了,高并发的处理机制令人惊叹。


Erlang里的模块类相当于OOPL中的类,进程相当于OOPL里的对象或类实例。并发编程可以用来提升性能,创建可扩展和容错的系统,以及编写清晰和可理解的程序来控制现实世界里的应用。


在Erlang里:


1  创建和销毁进程是非常快的
2
  在进程间发送消息是非常快的
3
  进程在所有操作系统上都具有相同的行为方式
4
  可以拥有大量的进程
5
  进程间不共享内存,是完全独立的
6
  唯一的沟通方式是消息传递,每个进程都有一个邮箱与进程同步创建。


1.那么什么是进程?


进程是进程是一种自包含的、分隔的计算单元,并与其他进程并发运行在系统中,在进程间并没有一个继承体系,当然,应用开发者可以设计这样一个继承体系。


进程的创建使用如下语法:


代码如下:

Pid = spawn(Module, FunctionName, ArgumentList)


spawn接受三个参数:模块名,函数名以及参数列表,并返回一个代表创建的进程的标识符(Pid)。
如果在一个已知进程Pid1中执行:


代码如下:

Pid2=spawn(Mod,Func,Args)


那么,Pid2仅仅能被Pid1可见,Erlang系统的安全性就构建在限制进程扩展的基础上。


2.进程间通信


Erlang进程间的通信只能通过发送消息来实现,消息的发送使用!符号:


代码如下:

Pid ! Message


其中Pid是接受消息的进程标记符,Message就是消息。接受方和消息可以是任何的有效的Erlang结构,只要他们的结果返回的是进程标记符和消息。


消息的接受是使用receive关键字,语法如下:
 

Receive

      Messagel [when GUard]->

         Actions1;

      Message2[when Guard2]->

         Actions2:

end


每一个Erlang进程都有一个“邮箱”,所有发送到进程的消息都按照到达的顺序存储在“邮箱”里,上面所示的消息Message1,Message2,当它们与“邮箱”里的消息匹配,并且约束(Guard)通过,那么相应的ActionN将执行,并且receive返回的是ActionN的最后一条执行语句的结果。Erlang对“邮箱”里的消息匹配是有选择性的,只有匹配的消息将被触发相应的Action,而没有匹配的消息将仍然保留在“邮箱”里。这一机制保证了没有消息会阻塞其他消息的到达。


而所有的ERLANG进程都有一个Pid与一个他们共有的称为Group Leader相关联,当一个新的进程被创建的时候将被加入同一个进程组。最初的系统进程的Group Leader就是它自身,因此它也是所有被创建进程及子进程的Group Leader。这就意味着Erlang的进程被组织为一棵Tree,其中的根节点就是第一个被创建的进程。


感谢您抽出  · 来阅读此文

更多精彩请点击【阅读原文】哦

↓↓↓

以上是关于Erlang编程语言详细介绍:的主要内容,如果未能解决你的问题,请参考以下文章

安装Erlang和RabbitMQ详细教程

Erlang 和 Elixir 介绍

Erlang源码安装

上帝说:要有一门面向未来的语言,于是有了 erlang

Erlang匿名函数及函数的高阶应用

干货 | Go/Python/Erlang编程语言对比分析及示例