코드 정의가 정의되지 않은 동작을 생성 할 수 있습니까?std :: thread 정의되지 않은 동작
unsigned int total_threads = 10;
vector<thread> t(total_threads);
unsigned int *nums = (unsigned int*)calloc(total_threads, sizeof(int));
for(unsigned int i = 0; i < 1000; i++)
{
for(unsigned int j = 0; j < total_threads; j++)
t[j] = thread(func_, std::ref(nums[j]));
for(unsigned int j = 0; j < total_threads; j++)
t[j].join();
for(unsigned int j = 0; j < total_threads; j++)
{
cout << nums[j] << " ";
nums[j] = 0;
}
}
'func_'이하는 일에 달려 있습니다. 그것이 단지 참조로 주어진 값을 수정하는 한, 나는 이것이 모두 잘 정의되어 있음을 확신한다. –