我在lua中做一些并行操作。一线程接收,一线程处理,一线程再次发送。为了在线程之间传递数据,我一直在使用表。
可悲的是,现在我需要传递多个变量。如何创建“多值表”(每个键可以有多个值的表)而不会对性能产生太大影响,还有比使用表更有效的方法吗?
到目前为止的简化代码:
sendQueue = {}
processQueue = {}
function recieveLoop()
while true do
Wait For recieve
table.insert(processQueue, recievedText)
end
end
function processLoop(sender, text, raw)
while true do
for key,value in pairs(processQueue) do
processData
table.insert(recieveQueue, raw)
end
end
end
然后对于 receiveLoop 也一样
所有这 3 个函数都是线程化的,并且彼此独立运行。