Sleep(0) 的意义是放弃当前线程执行的时间片,把自身放到等待队列之中。这时其它的线程就会得到时间片进行程序的程序。Sleep(0)能够降低当前线程的执行速 度,比如:现在系统中有100个线程(先假设是线程吧)在执行不同的任务,并且它们执行的优先级都是一样的,并且它们每一次分配的时间片的长度都是一样 的。那么现在当前线程中有一个Sleep(0),那么对于当前线程获得时间片的等待时间延长了1倍,也就是说相当于 200 个时间片之后再得到时间片执行任务。
标准库中无该函数
但在某些编译系统中有,在有些系统库中有,要根据你那边的环境而定。
如:
linux中有,unsigned int sleep(unsigned int
seconds),传入挂起时间,成功返回0,不成功则返回余下的秒数。
windows系统中有Sleep函数(注意大写),void Sleep(DWORD dwMilliseconds);
提供挂起的毫秒数。
Sleep就是把自己挂起,结束当前时间片
例如:
#include<iostream>
#include<windows.h>
using namespace std;
int main()
{
Sleep(3000);//暂停3秒 S要大写
return 0;
}
Use std::this_thread::sleep_for
:
::::(111605// or whatever::::();
There is also the complimentary std::this_thread::sleep_until
.
Prior to C++11, C++ had no thread concept and no sleep capability, so your solution was necessarily platform dependent. Here's a snippet that defines a sleep
function for Windows or Unix:
#ifdef#include<windows.h>void(unsigned){Sleepmilliseconds}#else#include<unistd.h>void(unsigned){(*1000// takes microseconds}#endif
But a much simpler pre-C++11 method is to use boost::this_thread::sleep
boost::this_thread::sleep
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决