一.C++11线程休眠线程函数介绍
C++11引入了两个用于线程休眠的函数,分别是
std::this_thread::sleep_for
和std::this_thread::sleep_until
。
std::this_thread::sleep_for
:这个函数会阻塞当前线程一段指定的持续时间。它接受一个std::chrono::duration
类型的参数,这个参数表示线程需要休眠的时间长度。这个时间长度可以是从纳秒到几小时不等。std::this_thread::sleep_until
:这个函数则会阻塞当前线程直到一个特定的时钟时间点。它接受一个std::chrono::time_point
类型的参数,表示线程应该休眠到的具体时间点。总的来说,这两个函数都位于
std::this_thread
命名空间中,是C++标准库的一部分,因此你的代码可以在不同的平台上保持一致性。使用这些函数可以让线程在执行过程中暂停,以等待某些条件的变化或是为了给其他线程或进程运行的机会。
二.C++11线程休眠函数的示例代码:
#include <iostream>
#include <thread>
#include <chrono>
void thread_function() {
std::cout << "Thread started." << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(3)); // 休眠3秒
std::cout << "Thread resumed after 3 seconds." << std::endl;
}
int main() {
std::thread t(thread_function);
t.join();
return 0;
}
在这个例子中,我们创建了一个名为
thread_function
的函数,它输出一条消息,然后使用std::this_thread::sleep_for
函数休眠3秒钟。在主函数中,我们创建一个新线程并启动它,然后等待它完成。当线程完成后,程序退出。