【问题标题】:Does lua command line support threads?lua 命令行是否支持线程?
【发布时间】:2015-04-01 12:07:18
【问题描述】:

有没有办法在默认的 lua 命令行实用程序中创建线程?

【问题讨论】:

    标签: multithreading lua


    【解决方案1】:

    不,Lua 的“库存”版本根本不支持线程。您可以使用您的操作系统分支来生成更多脚本,或坚持使用协程。

    【讨论】:

    • 嗯...我真的需要线程。你知道是否有一个 lua 库可以在命令行中添加线程支持?类似于: require("threads") threads.start(function () while true do print("hello") end end)
    • 另外,“stock”Lua 的任何部分都不是线程安全的,因此尝试使其成为多线程可能会导致严重问题。
    • @DanielSperry 上面对偶说了什么。在 Lua 中使用线程的最佳方式是为每个线程生成一个 VM,然后进行通信。如果你真的想这样做,这是可能的,但不像你想要的那样简单和时髦。您将需要自己的 Lua 构建。如果您正在寻找库,Lua 用户 wiki 是最好的可用资源
    • @dualed Lua 是线程安全的有点微妙,如this post on the mailing list 所示。我对此的解释是,单独的 Lua 状态是线程安全的(如在 OS 线程中),但 Lua 线程(如在协程中)不是。
    【解决方案2】:

    正如 Bartek 所说,现有 Lua 中不支持线程,但您可以通过 Lua Lanes 库向 CLI 添加线程支持(请参阅http://www.luteus.biz/Download/LoriotPro_Doc/LUA/LUA_For_Windows/lanes/index.html / https://github.com/LuaLanes

    【讨论】:

    • 太棒了!我设法根据需要在命令行中使用了 lualanes。
    猜你喜欢
    • 2022-10-14
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    • 2017-04-10
    • 2011-08-03
    • 1970-01-01
    相关资源
    最近更新 更多