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

2024-03-21

我相信Thread.ident作为线程的唯一标识符,但现在我看到不同的工作进程multiprocessing.poo.Pool报告相同的线程标识符threading.current_thread().ident. How?


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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多处理池工作线程中的线程标识符 的相关文章