多处理池工作线程中的线程标识符

Thread identifier in multiprocessing pool workers

我认为 Thread.ident 是线程的唯一标识符,但现在我看到 multiprocessing.poo.Pool 中的不同工作进程报告 threading.current_thread().ident 相同的线程标识符。怎么样?

根据平台的不同,ID 可能唯一也可能不唯一。这里要注意的重要一点是 python 多处理库实际上使用进程而不是线程进行多处理,因此进程之间的线程 ID 实际上是特定于平台的实现细节。

On Unix/Linux: 保证线程id在单个进程中是唯一的。但是,不能保证线程 ID 在进程中是唯一的。然而,processid (pid) 在进程中是唯一的。因此,您可以通过将两者放在一起来获得唯一标识符。来自 man pthread 页面的详细信息 http://man7.org/linux/man-pages/man7/pthreads.7.html

On windows: 线程 id 在整个机器上是唯一的: https://msdn.microsoft.com/en-us/library/windows/desktop/ms686746(v=vs.85).aspx