Erlang 语言中的进程与并发

Posted IT萌新

tags:

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

在前面所有示例中,无论是单个函数的执行,还是多个函数通过相互调用的执行,它们都是单进程的执行。即函数根据调用顺序依次调用并执行,同一时刻只有一个函数在执行中。

要实现程序的并发执行或多个函数互不干涉的独立执行,首先要理解并发与进程的概念。

进程在操作系统中是指程序的一次运行及其所分配的各种系统资源(包括内存、I/O等),Erlang 中的进程并不是操作系统中的进程,而是指Erlang 虚拟机(执行Erlang 程序的抽象机器)中的进程,它是一种轻量级的进程,其创建速度比操作系统要快,占用资源比操作系统中少。所以,在Erlang中你可以轻松快速创建成千上万个进程,而且其占用资源并不大。

Erlang 中并发如面向对象编程概念一样,也是一种实现用程序模拟现实世界的一种逻辑抽象。现实世界中,各种实体之间都是采用收发消息的机制产生联系或共享信息的。面向对象语言中以对象(包括对象的属性与方法)来模拟实体,在Erlang 语言中以进程来模拟实体。Erlang 语言中各进程之间不共享内存,也不共享变量,完全通过收发消息获取外界信息或与外界交流。这种方式极大地简化了程序或进程的实现机制,使并发编程变得容易。

让人惊奇的是,Erlang 语言不但实现了在同一虚拟机中的进程之间轻松交互,而且实现了不同机器之间或网络上不同主机之间的交互和在同一虚拟机上进程交互一样简单,并以几乎相同的方式实现。

Erlang 并发编程的基本模型

1.实现消息收发和处理机制的函数或程序;

2.创建并发执行的进程,进程在运行时根据需求自动进行信息的处理。


以上是关于Erlang 语言中的进程与并发的主要内容,如果未能解决你的问题,请参考以下文章

其他语言的 Erlang 风格并发

Erlang 并发编程

Erlang 摘要

回顾Erlang简要

不是语言之争--Go vs Erlang

Erlang 中的并发