Erlang接收消息 - 它是如何在内部完成的?

Mr.*_*oor 5 erlang

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

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

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

Dan*_*nko 5

Erlang进程不对应于OS线程或进程.它们是作为Erlang VM的内部结构实现的,它们由Erlang VM调度.默认情况下由Erlang VM启动的OS线程数等于CPU数.当Erlang进程正在等待消息时,没有一个OS进程或线程被阻止.