14. Erlang 语法 CON'T 发送 Message "!" 基于消息通信 ,No Lock! No Shared Memroy! Pid ! {msg, "hello, I love erlang"} 向 Pid( 本地或远程主机 ) 代表的进程发送消息 receive 1, 阻塞等待任意消息 : receive Msg -> ok end 3, 等待消息 , 超时为 5 sec: receive Msg -> ok after 5000 -> timeout end 2, 实现 sleep: receive after Time -> ok end 4, 检测是否存在消息 : receive SomeMsg -> exist after 0 -> no_exist end
15. Erlang 并发 关于 Process 每个 Process 拥有一个 mailbox ,保存消息 Processes 之间通过发送异步 Message 进行交互 , 无共享状态 轻量 , 兼有 OS Process 的隔离及 OS Thread 的高效 Process 具有自己 Stack, Heap, GC Process 可以位于 Local, 也可以位于 Remote Machine Process 能够进行多种形式的管理及控制 (link, monitor, exit signal) Process 为 erlang 高并发 , 高容错 , 分布式的基础 并发 Process 数 : default 32768, max 268435456
17. Erlang 并发 CON'T 基于 Process 的 http server 框架 (one loop process, per conection per process): setup up listen socket, spawn(listen_process). in listen_process: while can accept new client connect accept , spawn(client_process) loop in client_process: process protocol, close socket.