用途:本技能围绕 Erlang 基于轻量级进程与消息传递的并发模型,讲解如何构建大规模可扩展系统。进程之间相互隔离、不共享内存,通过异步消息通信,从而避免共享内存系统常见的并发缺陷。BEAM 虚拟机可高效调度数百万进程,每个进程拥有独立堆与邮箱,进程创建快速廉价,适合“每个实体一个进程”的设计。
主要能力:涵盖进程创建与 spawn(含 spawn_link、spawn_monitor、注册进程、进程池、并行 map、fork-join 模式);消息传递模式(发送与接收、请求-响应、发布-订阅、流水线);进程链接与监视(双向链接、单向监视、监督者模式);选择性接收;错误传播;并发设计模式与可扩展并发系统构建。
使用方式:资料给出 Erlang 代码示例,如 spawn(fun() -> ... end)、spawn_link、spawn_monitor、register、make_ref 配合 receive 实现请求-响应、process_flag(trap_exit, true) 捕获退出信号、monitor(process, Pid) 接收 {'DOWN', ...} 消息等。示例还展示进程池 worker_loop、pmap 并行映射、fork_join、pubsub_loop 与 concurrent_pipeline 等模式。
适用场景:需要隔离与独立状态的并发任务;分布式系统中的进程间通信;通过链接与监视构建容错监督层级;进程池处理并发请求与并行计算;复杂消息协议下的选择性接收。
限制与注意事项:资料强调应在 receive 中设置超时以避免无限阻塞;避免邮箱消息堆积造成内存泄漏;不要用共享 ETS 表替代互斥;监督者需 trap_exit;避免循环链接导致级联失败;注册名不宜滥用,以免形成单点与争用;细粒度并行使用进程可能只增加开销。资料未提供具体安装命令、收费信息或平台限制。