Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 在指定时间唤醒线程_Multithreading_C++11 - Fatal编程技术网

Multithreading 在指定时间唤醒线程

Multithreading 在指定时间唤醒线程,multithreading,c++11,Multithreading,C++11,我想在指定的时间唤醒我的线程。我可以这样做吗 #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;

我想在指定的时间唤醒我的线程。我可以这样做吗

#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);
}
#包括
#包括
使用名称空间std::literals::chrono_literals;
void foo(){}
int main()
{
使用时钟=标准::时钟::稳定时钟;
时钟::时间点下一个时间点=时钟::现在()+20s;
foo();
std::this_thread::sleep_until(下一个时间点);
}

你永远不应该使用睡眠。相反,在条件变量

上等待条件变量也可以有强制唤醒,这需要它们与一个附加条件结合(例如BoOL检查)。你有一个例子吗?非常感谢!你有一个例子吗herehttp://en.cppreference.com/w/cpp/thread/condition_variable