작성
·
158
0
#include "Pch.h"
#include <iostream>
#include "CorePch.h"
#include <thread>
using namespace std;
void HelloThread_2(int32 num)
{
cout << num << endl;
}
int main()
{
//HelloThread();
vector<std::thread> v;
for (int32 i = 0; i < 10; ++i)
{
v.push_back(std::thread(HelloThread_2, i));
}
for (int32 i = 0; i < 10; ++i)
{
if (v[i].joinable())
v[i].join();
}
for (auto& e : v) {
cout << e.get_id() << " ";
}
cout << endl;
다음과 같이 벡터값을 찍어보았는데, push_back을 해줬음에도 불구하고 벡터값이 0 0 0 0 0 0으로 찍혔습니다. 1~10의 값이 push_back되어 있어야 하는 거 아닌가요?
답변 1
0
1) 우선 get_id()가 1~10은 출력하진 않고 좀 특이한 숫자들을 반환합니다.
2) 근데 모두 0이 뜨는 이유는 join() 을 해서 이미 다 끝난 다음에 get_id()를 하기 때문입니다.
순서를 join 이전으로 바꿔보세요