gpt4 book ai didi

visual-c++ - 从另一个线程调用 lua 函数(作为回调)是否足够安全?

转载 作者:行者123 更新时间:2023-12-04 12:33:04 26 4
gpt4 key购买 nike

实际上,我正在使用 Visual C++ 尝试将 lua 函数绑定(bind)为套接字事件的回调(在另一个线程中)。我在一个线程中初始化 lua 的东西,而套接字在另一个线程中,所以每次套接字发送/接收消息时,它都会调用 lua 函数,而 lua 函数根据里面的“标签”确定它应该做什么信息。

所以我的问题是:

  • 由于我将相同的 Lua 状态传递给 lua 函数,这安全吗?它不需要某种保护吗? lua 函数是从另一个 thead 调用的,所以我猜它们可能会同时被调用。
  • 如果不安全,这种情况的解决方案是什么?
  • 最佳答案

    异步回调到 Lua 状态是不安全的。

    有很多方法可以处理这个问题。最受欢迎的涉及某种投票。

    最近的通用同步库是 DarkSideSync

    一个流行的 Lua 绑定(bind)到 libev 是 lua-ev

    This SO answer推荐使用 LuaSocket 的 Lua Lanes。

    关于visual-c++ - 从另一个线程调用 lua 函数(作为回调)是否足够安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16578110/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com