erlang如何使用一个OS线程实现抢占式调度?

问题描述 投票:2回答:1

我想知道erlang的VM如何抢占正在运行的代码并使用栈上下文。如何用c等语言完成?

erlang scheduling preemptive green-threads
1个回答
0
投票

Erlang的所有代码都将编译为Erlang VM的操作代码。 Erlang的VM通过OS的线程执行Erlang的操作代码,这些线程是在Erlang的VM启动时创建的。

Erlang的代码运行在由Erlang的VM控制的虚拟CPU上。 Erlang的VM将IO视为虚拟CPU的中断。因此,Erlang的VM实现了一台机器和一个像操作系统一样的调度程序。由于操作代码和非阻塞IO,我们可以使用C语言在Erlang的VM中实现抢占。

© www.soinside.com 2019 - 2024. All rights reserved.