私は c++11 マルチスレッドに関するドキュメントを読んでいて、std::thread
.
コード:
void thread_task(int n) {
...
}
int main(int argc, const char *argv[])
{
std::thread threads[5];
for (int i = 0; i < 5; i++) {
threads[i] = std::thread(thread_task, i + 1);
}
return 0;
}
わかりませんthreads[i] = std::thread(thread_task, i + 1);
。std::thread
静的関数呼び出しであり、std::thread オブジェクトの参照を返しますか? 想像を絶するように聞こえますが、コードが言うことのようです。
私なら次のように書くからです。
std::thread *threads[5];
for (int i = 0; i < 5; i++) {
threads[i] = new std::thread(thread_task, i + 1);
}
ありがとう。