关于C++中线程的问题
使用一种或另一种的优点和缺点是什么?
vector<thread> tvec;
...或
vector<thread*> tvec; // or vector<shared_ptr<thread>> tvec;
...发布于 2021-03-24 10:19:37
std::thread是一个很小的类,主要包含线程ID或句柄。它也是可移动的,因此是一个很好的候选存储在一个vector的价值。
因此,按值存储它们是最简单和最易读的,因为它是vector<thread> tvec;。
此外,表单vector<T*>包含不拥有的语义,因此可能与您想要的不同。
发布于 2021-03-24 10:15:29
让我们将它们称为值和指针版本:
发布于 2021-03-24 10:19:25
在
vector<thread>和vector<thread *>中的差异
我猜想vector,你指的是std::vector,thread,你指的是std::thread。如果我想错了,就纠正我。
首先是包含thread对象的向量。另一个是包含thread*对象的向量,这些对象是指向thread的指针。
使用一个或另一个的优点和缺点是什么?
vector<thread>的优点是可以获得thread对象。vector<thread>的缺点是没有thread*对象。
vector<thread *>的优点是可以获得thread*对象。vector<thread *>的缺点是没有thread对象。
当您想启动多个线程进行并行编程时,vector<thread>非常有用。
我还没有遇到vector<thread *>有用的用例。
https://stackoverflow.com/questions/66778801
复制相似问题