c++多线程程序 sleep
时间: 2024-11-11 15:13:43 浏览: 19
在C++中,`sleep()`是一个标准库函数,通常用于C++11及更高版本中的`<chrono>`头文件中。它允许你在指定的时间内暂停当前线程的执行。其原型通常是这样的:
```cpp
#include <chrono>
#include <thread>
std::this_thread::sleep_for(std::chrono::seconds seconds);
```
或者
```cpp
std::this_thread::sleep_until(std::chrono::steady_clock::now() + std::chrono::seconds(seconds));
```
第一个函数接受一个`std::chrono::seconds`类型的参数,表示以秒为单位的睡眠时间。第二个函数则接受一个时间点作为结束时间,线程会一直睡眠直到这个时间点。
例如:
```cpp
#include <iostream>
#include <chrono>
#include <thread>
void delay(int seconds) {
std::this_thread::sleep_for(std::chrono::seconds(seconds));
std::cout << "Thread is awake after sleeping for " << seconds << " seconds.\n";
}
int main() {
std::thread worker(delay, 5); // 创建并启动一个工作线程,让它睡眠5秒
worker.join(); // 等待主线程完成
return 0;
}
```
在这个例子中,工作线程会先睡眠5秒,然后输出一条消息。`join()`函数用于等待线程执行完毕。
阅读全文