ThreadId 在 CreateThread() c++ 中的重要性

Importance of ThreadId in CreateThread() c++

本文关键字:重要性 c++ CreateThread ThreadId      更新时间:2023-10-16

我对C++中的CreateThread()函数有疑问。

threadId 参数在此函数中的重要性是什么?

我们是否可以使用相同的线程 ID 创建相同的线程(相同的名称)。

     DWORD threadId = 0;
     CreateThread(NULL, 0, Thread1, NULL,0, &threadId);
     CreateThread(NULL, 0, Thread1, NULL,0, &threadId);

这种方式可能吗?线程 ID 中的值将包含什么?通过做上面的抨击,是不是第二个线程的创建会覆盖第一个线程的threadId值?

如果握住句柄,则不需要threadId来操作线程;但是,您可以选择保留 ID,然后使用 OpenThread 获取的句柄。(这也适用于进程,这是通过将 ID OpenThread 将线程句柄"转移"到其他进程的唯一方法)。

您还可以使用 ID 将作业分发到线程(尽管您可以自己编造标识符)。

最后但并非最不重要的一点是,有时您确实需要线程 ID,例如在调用 PostThreadMessage 函数时。

threadId 参数在此函数中的重要性是什么?

如果生成多个线程,如何区分不同的线程?此 id 是允许您检查和处理来自各种线程的信息的句柄。

这种方式可能吗?

这是可能的,但在此特定示例中,您将丢失首先创建的线程的一个访问点。