2016-06-23 17 views
1

指定した時刻にスレッドを起きたい。このようにすることはできますか?指定時刻に起床するスレッド

#include <chrono> 
#include <thread> 
using namespace std::literals::chrono_literals; 
void foo() {} 
int main() 
{ 
    using clock = std::chrono::steady_clock; 
    clock::time_point next_time_point = clock::now() + 20s; 
    foo(); 
    std::this_thread::sleep_until(next_time_point); 
} 

答えて

3

あなたは決して睡眠を使うべきではありません。代わりに条件変数を待ちます

+0

また、条件変数が追加の条件(たとえば、あなたがチェックするbool)と組み合わされる必要がある自発的な起床を持つことができると考えてください。 – Taredon

+0

例がありますか?とても有難い! – Damian

+0

ここに例があります://en.cppreference.com/w/cpp/thread/condition_variable – crn

関連する問題