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

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

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

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

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

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

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

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

相关推荐
雯宝8 小时前
mnt_init 函数
linux
UIU1149 小时前
递归算法与汉诺塔
c++·学习·算法·c#·递归
leeyi14 小时前
erlang_pay 日元没有“分“,退款要带流水号:支付代码里两条要命的规矩
微信·erlang·支付宝
律宏阔14 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔14 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
穷人小水滴14 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
乱码三千15 小时前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
yunwei3715 小时前
使用 eBPF 跟踪 Nginx 请求
linux·后端·性能优化
yunwei3715 小时前
使用 eBPF 跟踪 MySQL 查询
linux·后端·性能优化
leeyi15 小时前
erlang_pay 先验章,再拆包:支付回调的验签到底在防什么
微信·erlang·支付宝