我想在C++中使用std::thread
這樣的庫創建嵌套線程。在C++中std :: thread庫支持嵌套線程嗎?
#include<iostream>
#include<thread>
#include<vector>
using namespace std;
void innerfunc(int inp)
{
cout << inp << endl;
}
void outerfunc(int inp)
{
thread * threads = new thread[inp];
for (int i = 0; i < inp; i++)
threads[i] = thread(innerfunc, i);
for (int i = 0; i < inp; i++)
threads[i].join();
delete[] threads;
}
int main()
{
int inp = 0;
thread t1 = thread(outerfunc,2);
thread t2 = thread(outerfunc,3);
t1.join();
t2.join();
}
我可以安全地做到這一點嗎?我很擔心join()
是否正常工作。
無關,我想通過把那個神祕,包括但-從不使用''用好,而不是管理動態分配自己開始。 –
WhozCraig
「安全」是什麼意思? 「正常工作」與「工作」有什麼不同? –
我不明白「嵌套線程」在這裏的含義 - 什麼是嵌套的? –