Остановка и запуск потоков С++

У меня есть несколько 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 раза...

→ Ссылка