Остановка и запуск потоков С++
У меня есть несколько void которые одновременно работают после такой записи:
void example1(){}
void example2(){}
void start_threads(){
thread t1(example1);
thread t2(example2);
t1.join();
t2.join();
}
int main(){
start_threads();
}
Но дальше я останавливаю эти два void через return(); *Выполняю какой то другой void... И теперь мне нужно снова запустить эти потоки. Способ снова вызвать функцию start_threads() не работает. Как мне это сделать? Подскажите пожалуйста.
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Похоже, я чего-то не понимаю...
void example1(){ for(int i = 0; i < 10; ++i) { cout << 1; this_thread::sleep_for(100ms);} }
void example2(){ for(int i = 0; i < 10; ++i) { cout << 2; this_thread::sleep_for(100ms);} }
void start_threads()
{
thread t1(example1);
thread t2(example2);
t1.join();
t2.join();
cout << endl;
}
int main(int argc, const char * argv[])
{
start_threads();
cout << "Once more...\n";
start_threads();
}
Это не то, что вам нужно? Потоки запущены 2 раза...