erlang的process是个调度单位 它包含特定的MFA, 消息队列等,调度后由beam_emu来执行其中的opcode 在等待消息或者yield的时候放弃执行权,有消息的时候接着原来的地方继续执行。lua的coroutine也是同样的, 只不过他没有消息队列, 它的再执行靠lua_resume来推动。 我的理解是这样的,这是2个语言不同的地方,但是同样的轻量,同样的效率。