我的应用程序在具有全局 mutex的多线程环境中使用Lua。它是这样实现的:
- 线程锁互斥锁,
- 称呼
lua_newthread
- 执行一些初始化
coroutine
lua_resume
继续运行coroutine
- 解锁互斥锁
lua_lock/unlock
没有实现,GC 停止,当 lua 使用coroutine
.
我的问题是,如果初始化过程不需要任何全局 Lua 结构,我可以在不锁定的情况下执行第 2 步和第 3 步吗?coroutine
如果不需要全局变量,我可以在不锁定的情况下执行所有这些过程吗?
在什么情况下我通常可以使用 Lua 函数而不加锁?