我可以创建具有相同名称的C++线程吗



每个人。我写的代码如下:

std::thread t1(cmdThread);
t1.detach();
for (int n = 0; n < tCount; n++)
{
std::thread t1(sendThread,n+1);
t1.detach();
}

CmdThread和sendThread不同。所有名为t1的线程,但它们正常工作。这让我很困惑。在for循环中,我想创建4个线程。C++是否允许用户创建相同名称的线程,并且这些线程也可以很好地分离?

我可以创建具有相同名称的C++线程吗?

在C++中,没有线程有名称的概念。

所有名为t1 的线程

t1是一个变量。变量的类型是std::thread,它是一个线程包装器。t1是循环体的局部变量,因此变量在每次迭代中都命名一个新对象。

在初始化过程中,由变量t1命名的线程包装器会创建一个线程,然后该线程将归包装器所有。包装器创建的线程没有名称。当线程从t1分离时,包装器不再拥有线程,分离的线程也没有所有者。在迭代结束时,线程包装器被销毁。在下一次迭代中,将重复此过程。

你可以做你在示例程序中做的事情。

相关内容

  • 没有找到相关文章

最新更新