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

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

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

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

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

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

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

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

相关推荐
ajole2 分钟前
C++学习笔记——stack和queue
开发语言·数据结构·c++·笔记·学习·stl·学习方法
优选资源分享6 分钟前
开源免费 Linux 服务器管理工具 Server Box v1.0.1297
linux·服务器·开源
颢珂智库Haokir Insights7 分钟前
宝塔面板安装教程(新手完整指南)
linux·运维·服务器
晨非辰11 分钟前
Linux文件操作实战:压缩/传输/计算10分钟速成,掌握核心命令组合与Shell内核交互秘籍
linux·运维·服务器·c++·人工智能·python·交互
代码AC不AC12 分钟前
【Linux】环境变量
linux·环境变量·命令行参数
努力努力再努力wz1 小时前
【Linux网络系列】:JSON+HTTP,用C++手搓一个web计算器服务器!
java·linux·运维·服务器·c语言·数据结构·c++
好奇龙猫6 小时前
【人工智能学习-AI入试相关题目练习-第七次】
人工智能·学习
jacGJ9 小时前
记录学习--文件读写
java·前端·学习
物理与数学9 小时前
linux 内存分布
linux·linux内核
枷锁—sha9 小时前
【PortSwigger Academy】SQL 注入绕过登录 (Login Bypass)
数据库·sql·学习·安全·网络安全