gpt4 book ai didi

multithreading - Lua 操作,适用于多头环境

转载 作者:行者123 更新时间:2023-12-03 01:29:39 29 4
gpt4 key购买 nike

我的应用程序在具有全局互斥体多线程环境中使用Lua。它的实现是这样的:

  1. 线程锁互斥锁,
  2. 调用lua_newthread
  3. 协程执行一些初始化
  4. 协程上运行lua_resume
  5. 解锁互斥体

当lua与协程配合使用时,lua_lock/unlock未实现,GC停止。

我的问题是,如果初始化过程不需要任何全局 Lua 结构,我可以在不锁定的情况下执行步骤 2 和 3 吗?如果协程也不需要全局变量,我可以在不锁定的情况下执行所有这些过程吗?

什么情况下我一般可以使用Lua函数而不加锁?

最佳答案

如果您尝试在没有 lua_lock/unlock单独操作系统线程中使用单一 Lua 状态,Lua 不保证线程安全。如果您想使用多线程环境,您需要为每个操作系统线程使用单独的状态。

看看一些多线程解决方案,例如https://github.com/effil/effil

关于multithreading - Lua 操作,适用于多头环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12803115/

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