每个进程或每台计算机的线程ID是唯一的吗?

时间:2012-12-10 09:53:38

标签: c++ multithreading winapi thread-safety

说,如果我有一个线程ID,我可以放心,每个进程或整个操作系统(在所有登录用户中)它将是唯一的(因为线程正在运行)吗?

2 个答案:

答案 0 :(得分:12)

是的,Windows上的线程ID和进程ID是从同一个池分配的,因此它们将是唯一的。但是,一旦线程或进程结束,ID就可能被另一个线程或进程重用。

答案 1 :(得分:8)

线程由内核对象表示,例如在Windows平台上。因此,它的id在所有登录会话中的所有进程中都是唯一的。但是,在线程内核对象关闭后,线程ID可以被回收。

GetCurrentThreadId在运行时也清楚地说明了唯一的ID。