1
我想在两个车道之间共享一个全局变量,想法是当lane1更新一个共享变量时,我应该能够在车道2得到预定时获得它的更新值。有针对这个的解决方法吗?在Lua车道之间共享一个全局变量
代码片段如下: -
shared_variable = 0
local function lane1()
..
shared_variable = shared_variable + 1
end
local function lane2()
..
print(shared_variable)-->shared variable is not getting updated,always prints 0
end
Thread1= lanes.gen("*",{globals = _G},lane1)
Thread2= lanes.gen("*",{globals = _G},lane2)
T1 = Thread1()
T2 = Thread2()
T1:join()
T2:join()
感谢Gran..The的解决方案是不是我一直在寻找,这将创建额外的开销和复杂性进入实施。根据Lua文档,有一个luaG_deep_userdata()的概念来解决这种问题,但我错过了如何从文档中实现它。 – Anoop
@Anoop Deep userdata是一个** Lanes **概念,而不是一个Lua概念。它不会比使用Linda简单,尽管你想使用'get'和'set'而不是'send' /'receive'(在Lanes doc中搜索':get') – dualed
@dualed我实际上正在使用在回答这个问题时首先得到'set',但是它导致Lua崩溃... –