5

erlang 运行时内部如何实现接收消息?

当进程在等待消息时,执行挂起在接收上。接收是通过阻塞 IO 还是异步 IO 完成的?

如果是前者,则意味着操作系统线程被阻塞,如果有很多进程在接收时挂起,由于线程上下文切换,性能很差,也可能达到操作系统的线程限制。

4

1 回答 1

5

Erlang 进程不对应于操作系统线程或进程。它们被实现为 Erlang VM 的内部结构,并由 Erlang VM 调度。Erlang VM 默认启动的 OS 线程数等于 CPU 数。当 Erlang 进程等待消息时,没有一个 OS 进程或线程被阻塞。

于 2013-05-24T03:33:59.800 回答