필요한만큼 스레드를 만들 필요가 있기 때문에 필요에 따라 스레드를 만들어야합니다. '저장'으로 는 스레드가 벡터를 사용하여 메신저 std::vector<std::thread> threads;
내가 새 스레드를 만들 때마다 내가 벡터에 그들을 다시 밀어 : threads.push_back(std::thread(worker));
표준 C++ 스레드 ID - 이상한 동작
은 (테스트) 저장 난 다음 사용하는 스레드 ID : double test = std::hash<std::thread::id>()(std::this_thread::get_id());
따라 cpp-references hash, thread::id 및 get_id이 잘 작동합니다.
만이 라인의 메신저 ID로 점점 항상 0 (영)
ID가 해시 행 아래에 다음 줄을 추가하면 작동하고 내가 스레드에서 해시 ID를 얻을 : std::thread::id tid = std::this_thread::get_id();
심지어 내가 해달라고 tid
누군가가이 동작을 설명 할 수 있습니까? 메신저 이클립스 주노와 협력 프로젝트를 여러 번 다시 + 청소 ... 난 그냥 그것을 얻을 해달라고 : 여기/
코드 : 여기 형식 규칙이 바보이기 때문에 라인으로 (라인 -.-
%ld
이
long
아닌
double
, 그래서 프로그램이 동작을 정의되지 않은 것처럼
std::vector<std::thread> threads;
void worker(){
double test = std::hash<std::thread::id>()(std::this_thread::get_id());
std::thread::id tid = std::this_thread::get_id();
printf("%ld\n", test);
}
void joinThreads(std::thread& t)
{
t.join();
}
int main() {
for (int i = 0; i < 10; ++i) {
threads.push_back(std::thread(worker));
}
std::for_each(threads.begin(),threads.end(),joinThreads);
return 0;
}
몇 가지 코드를 게시 하시겠습니까? –
코드가 추가되었습니다. "잘못된"형식의 오류가 항상 있기 때문에 시간이 좀 걸렸습니다. Oo – baam