예를 들어 이전 스레드가 완료 될 때까지 각 스레드가 실행되지 않기를 바란다. thread.isRunning()
과 같은 플래그가 있습니까?스레드를 동시에 실행하는 대신 순차적으로 실행하는 방법은 무엇입니까?
#include <iostream>
#include <vector>
#include <thread>
using namespace std;
void hello() {
cout << "thread id: " << this_thread::get_id() << endl;
}
int main() {
vector<thread> threads;
for (int i = 0; i < 5; ++i)
threads.push_back(thread(hello));
for (thread& thr : threads)
thr.join();
cin.get();
return 0;
}
하지만 제가 순서를 제어 할 경우?
XY 문제와 유사합니다. 주문을 왜 통제하고 싶습니까? 당신의 유스 케이스는 무엇입니까? –
다른 스레드가 끝날 때까지 하나의 스레드를 실행하지 않으려면 스레드를 원하지 않을 것입니다. 하나씩 다른 함수 호출을 작성하십시오. –
이 질문은 '동시 작업이 순차적으로 실행되도록 설계된 것을 어떻게 만들 수 있습니까?'라는 것이 너무 자주 나타납니다. –