我目前正在研究Lua脚本以与某些第三方产品集成。这个第三方产品同时在几个线程上调用我的Lua脚本,这很好。但是,当我从脚本写入日志文件时,我想确定哪个线程正在运行我的Lua脚本并将其写入日志文件。
这将允许我识别哪些日志条目属于一起。
关于如何在Lua中对不同线程的日志条目进行正确区分的任何想法都将非常受欢迎。
答案 0 :(得分:2)
表的默认tostring()
表示包含表的(内存)地址。它保证在同一进程上运行的不同Lua VM上是唯一的。
您可以利用它为每个线程生成唯一ID:
local unique_id = tostring( {} ):sub(8) -- extracts the "address" part
print(unique_id)
--> outputs 0x7f876b608b00
作为旁注,这是一种生成用于全局Lua registry的唯一键的推荐方法!