Sono nuovo di std :: thread. Ho bisogno di mettere un thread per dormire da un altro thread, è possibile? In esempi, tutto quello che vedo è un codice simile:Come std :: thread sleep
std::this_thread::sleep_for(std::chrono::seconds(1));
Ma quello che voglio fare è qualcosa di simile:
std::thread t([]{...});
t.sleep(std::chrono::seconds(1));
o sleep(t, std::chrono::seconds(1));
Tutte le idee?
Onestamente, la soluzione migliore è quella di risolvere qualsiasi problema si sta avendo un modo ragionevole. Non c'è davvero alcuna ragione per cui tu voglia mai mettere un thread per dormire da un altro thread. Se il thread sta facendo il lavoro che vuoi fare ora, perché metterlo a dormire? Se il thread non sta facendo il lavoro che vuoi fare ora, allora il suo codice è rotto e dovresti risolverlo. –
Probabilmente quello che vuoi veramente usare è 'std :: condition_variable' e i suoi metodi come' wait (...) 'o' wait_for (...) ' – hirschhornsalz