0

我很好奇为什么有两个单独的 ID -当我在 win32 API 编程中调用时在数据结构dwProcessIddwThreadId返回?PROCESS_INFORMATIONCreateProcess

在什么情况下我会使用dwThreadId? 到目前为止,我还没有找到一个用例。我只使用进程 ID 来识别我通过CreateProcess.

另外我很好奇为什么Linux只有一个pid(又名ProcessId)而Windows既有pid又有threadid?

4

2 回答 2

1

Every process has at least one thread. The thread id gives you the id of the first thread created for a process by the CreateProcess API. You can create more threads and they'd have id's too.

They're separate only because process ids are for processes and thread ids are for threads. I don't think there's much more to say about it!

于 2012-10-06T12:43:48.023 回答
0

创建的进程有线程,因为任何进程都至少有一个线程。因此,创建一个进程您还创建了它的第一个执行线程,而 API 函数同时让您两者兼得。

当您需要查找某个线程时使用线程标识符,并且在您调用的函数或 API 期望进程标识符的地方使用进程标识符。您不太可能偶然发现任何需要两者的东西,并且您不确定要在那里提交哪个标识符。

于 2012-10-06T12:43:38.497 回答