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
"안전한"의미는 무엇입니까? "올바르게 일하는 것"이 "일하는 것"과 다른 점은 무엇입니까? –
"중첩 된 스레드"가 의미하는 바를 여기에서 이해하지 못합니다 - 중첩 된 것은 무엇입니까? –