如何识别Lua脚本在哪个线程上运行?

时间:2013-09-20 08:36:11

标签: logging lua

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

print(unique_id)
--> outputs 0x7f876b608b00

作为旁注,这是一种生成用于全局Lua registry的唯一键的推荐方法!