4

我目前正在研究 Lua 脚本以与某些第三方产品集成。这个第三方产品同时在多个线程上调用我的 Lua 脚本,这很好。但是,当我从脚本写入日志文件时,我想确定哪个线程正在运行我的 Lua 脚本并将其写入日志文件。

这将允许我确定哪些日志条目属于一起。

任何关于如何正确区分来自 Lua 中不同线程的日志条目的想法都将非常受欢迎。

4

1 回答 1

3

表的默认tostring()表示包含表的(内存)地址。它保证在同一进程上运行的不同 Lua VM 中是唯一的。

您可以利用它为每个线程生成一个唯一 ID:

local unique_id = tostring( {} ):sub(8) -- extracts the "address" part

print(unique_id)
--> outputs 0x7f876b608b00

作为旁注,这是生成用于全局 Lua注册表的唯一密钥的推荐方法!

于 2014-06-07T13:38:16.687 回答