0

假设您有一个复杂的 Lua 应用程序,并且代码的不同部分会重复调用一些基本函数。这是一个无状态函数,几乎没有副作用,而且相当简单。

虚拟机如何处理这个问题?它是否将所有调用排队,并让它们一个接一个地运行,等待函数返回后再调用它?还是为了避免这种情况做了一些诡计?如果函数有一些很大的副作用,比如 print(),会怎样?

4

1 回答 1

4

Lua 是单线程的,因此每个函数调用都必须在调用下一个函数之前返回。如果某个功能被阻止,那么 VM 也会被阻止。解决这个问题的唯一方法是协程或 Lua 通道或 C 线程。

于 2014-11-18T02:42:26.047 回答