Multithreading Lua-如何模拟;多线程;?
我有两个功能:Multithreading Lua-如何模拟;多线程;?,multithreading,function,lua,Multithreading,Function,Lua,我有两个功能: function func1() while true do -- listen on connection end end function func2() while true do -- execute other code end end 我想“同时”运行这两个函数,同时在它们之间共享变量。我曾尝试创建一个调度程序,使这两个函数协同工作,但我想不出一种方法来安排它们快速交替执行。(func1运行一秒钟,func2运行
function func1()
while true do
-- listen on connection
end
end
function func2()
while true do
-- execute other code
end
end
我想“同时”运行这两个函数,同时在它们之间共享变量。我曾尝试创建一个调度程序,使这两个函数协同工作,但我想不出一种方法来安排它们快速交替执行。(func1运行一秒钟,func2运行一秒钟,func1运行一秒钟,依此类推)Lua不支持异步多线程。它只支持协作线程。这意味着这两个“线程”必须设计为给另一个线程执行时间。这样的设计通常高度依赖于你想要完成的东西 您的示例讨论了一个线程侦听连接,另一个线程执行某些操作(或者使用该连接的数据,或者不使用该连接的数据;这并不完全清楚)。在这样的系统中,当连接没有提供新数据时,最好让
func1
调用func2
的线程。而func2
只有在处理完某些内容后才会将控制权返回到func1
但是,对于协作多线程,没有一种一刀切的解决方案。存在用于Lua的C库,它公开了多线程或多处理的方法。例如:
- (显然(?)取决于火炬)
- 火炬有一些