Erlang 接收消息——内部是怎么做的?

标签 erlang

怎么样了接收 在 erlang 运行时内部实现的消息?

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

如果是前者,则说明OS线程被阻塞,如果有很多进程在接收时挂起,由于线程上下文切换而导致性能不佳,也可能达到操作系统的线程限制。

最佳答案

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

关于Erlang 接收消息——内部是怎么做的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16726896/

相关文章:

java - 在 Java/Scala 中重现 CouchDB 1.2.0 密码哈希函数

unicode - {html, ...} 中的雅司病 unicode 符号

c# - 与 C# 程序通信 Erlang 服务器

concurrency - 在 erlang 中轮询接收 block 是好的做法吗?

erlang - Windows 中的 .erlang 文件

encryption - 使用 erlang + RSA 解密字符串

recursion - Erlang递归函数的评估(为什么这样做)

Erlang:带有多个超时子句的接收语句

erlang - Erlang 是否有一些功能可以在文件夹更改的情况下监视文件夹?

javascript - Erlang Misultin 上的 Websocket - 始终将请求传递给循环而不是 ws_loop