인프런 커뮤니티 질문&답변

youn7117님의 프로필 이미지

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

쓰레드 생성

vector관련 질문입니다

21.08.05 14:51 작성

·

150

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

Rookiss님의 프로필 이미지
Rookiss
지식공유자

2021. 08. 05. 17:24

1) 우선 get_id()가 1~10은 출력하진 않고 좀 특이한 숫자들을 반환합니다.

2) 근데 모두 0이 뜨는 이유는 join() 을 해서 이미 다 끝난 다음에 get_id()를 하기 때문입니다.
순서를 join 이전으로 바꿔보세요

youn7117님의 프로필 이미지

작성한 질문수

질문하기