inn*_*inn 4 lua multithreading coroutine
您好我的lua脚本需要一些帮助.我这里有一个脚本,它将运行像应用程序这样的服务器(无限循环).这里的问题是它没有执行第二个协同程序.
你能告诉我什么是错的谢谢你.
function startServer()
print( "...Running server" )
--run a server like application infinite loop
os.execute( "server.exe" )
end
function continue()
print("continue")
end
co = coroutine.create( startServer() )
co1 = coroutine.create( continue() )
Run Code Online (Sandbox Code Playgroud)
Lua有合作多线程.线程不会自动yield切换,但必须与其他线程交换.当一个线程正在运行时,每个其他线程都在等待它完成或产生.这个示例中的第一个线程似乎正在运行server.exe,我认为,在中断之前,它永远不会完成.因此,第二个线程永远不会轮到运行.
你也运行错误的线程.在您的示例中,您根本没有运行任何线程.你执行函数,然后尝试用它的输出创建协程,这自然会失败.但是,既然你永远不会从server.exe你那里回来,你还没有注意到这个问题.之后删除这些括号startServer并continue进行修复.