Lua命令行支持线程吗?

5
有没有办法在默认的Lua命令行工具中创建线程?
2个回答

4
没有,Lua的“标准”版本并没有支持线程。你可以使用操作系统的fork函数来启动更多的脚本,或者只使用协程。

嗯...我真的需要线程。你知道是否有一个Lua库可以在命令行中添加线程支持吗?就像这样: require("threads") threads.start(function () while true do print("hello") end end) - Daniel Sperry
1
此外,“原始”的Lua不是线程安全的,因此尝试将其变成多线程可能会导致严重问题。 - dualed
@DanielSperry,就像dualed上面所说的那样。在Lua中使用线程的最佳方式是为每个线程生成一个虚拟机,然后进行通信。如果您真的想这么做,那是有可能的,但并不像您想象的那么容易和时髦。您需要自己建立Lua构建。如果您正在寻找库,Lua用户维基是最好的可用来源。 - Bartek Banachewicz
@dualed Lua的线程安全性要更加微妙一些,正如邮件列表上的这篇文章所指出的那样。我的理解是,单独的Lua状态是线程安全的(就像操作系统线程一样),但Lua线程(协程)则不是。 - jpjacobs

3

太好了!我成功地在命令行中使用了lualanes,就像我想要的那样。 - Daniel Sperry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接