【Erlang进阶学习】4、进程与消息传递

在Erlang系统中,进程都是轻量级的,意味着创建进程只需要花费微不足道的时间和极少的内存。

1、进程间不共享内存,而是通过消息传递来通信。

2、消息从发送进程的栈上复制到接收进程的堆上。

3、由于多个进程并发地在独立的内存空间执行,这些内存空间可以独立地进行垃圾回收(GC机制),这给Erlang程序带来了良好的可预测的软实时属性。(高负载下也能维持软实时属性。)

4、数百万个进程可以同时运行在一个VM(Erlang程序运行时虚拟机)上。(工作中项目限制为40万个进程)

5、当程序出现错误,进程将会崩溃,但由于内存不共享,错误是隔离的,不会影响其它不相关的进程继续运行。

进程通过 spawn(Mod, Func, Args) 函数创建,这是一个BIF函数。spawn函数调用后会返回一个进程标识符 Pid 。Pid是用来进行消息发送的唯一标识。在消息发送时,将Pid放入消息内,即可实现与其它进程反向通信。

相关推荐
赵药师18 分钟前
dpkg: warning: files list file for package ‘libselinux1:amd64‘ missing;
linux·运维·服务器
STDD31 分钟前
Samba 文件共享:Linux 服务器与 Windows/Mac 共享文件夹
linux·服务器·windows
liudanzhengxi44 分钟前
CRM系统技术文章
linux·服务器·网络·人工智能·新人首发
南境十里·墨染春水1 小时前
守护进程编程流程
linux·学习
eggrall2 小时前
Linux进程信号——像收快递一样理解 Linux 信号
linux·开发语言·c++
灰色人生qwer2 小时前
Python 规则:带默认值的参数必须放在不带默认值的后面
linux·windows·python
嘿嘿嘿x32 小时前
Linux-实践
linux·运维·算法
GEO从入门到精通2 小时前
学习GEO资料要多久能看到效果?
人工智能·学习
lzh200409192 小时前
手撕线程池:巩固Linux线程知识
linux·c++
张二娃同学3 小时前
01_C语言学习路线与开发环境搭建
c语言·开发语言·学习