在应用程序某个线程中,如果这样写:
while(TRUE) {}
在代码不被编译器优化的情况下,可以看到CPU被100%的占用,但如果修改为:
while(TRUE) { Sleep(10); }
则CPU占用率就非常低。
在系统内部如何实现Sleep函数,使得它即不占用CPU又能在指定的时间返回呢?
while(TRUE) {}
在代码不被编译器优化的情况下,可以看到CPU被100%的占用,但如果修改为:
while(TRUE) { Sleep(10); }
则CPU占用率就非常低。
在系统内部如何实现Sleep函数,使得它即不占用CPU又能在指定的时间返回呢?
解决方案 »
- m_pHttpFile->QueryInfo(HTTP_QUERY_CONTENT_LENGTH, buf, &dwBufSize);并不能得到正确的文件大小
- vs2010添加ATL类的时候为什么分ATL 简单对象、ATL控件、ATLXXX
- 求TCP学习资料
- 位圖的快速轉換中的循環
- 请问一个CString类型的字符串如何转化为一个char *s行的呢?
- 如何将VC的输出数据直接输入到Excel表格里(急)
- 不支持doc/view结构的sdi的CFrameWnd::GetActiveView怎么返回NULL啦?
- 帮我找一下DXF文件接口程序好吗?各位牛哥!
- 如何去掉垂直滚动条
- 我为是么没长进!!
- 有没有比VC附的那个spy,还好用一些的工具?
- 问一个 SPI 的问题
不光是while(TRUE) {}
如果你搜索目录,目录很多也会有这种情况,会像死机一样,有时候还真的死掉了.
操作系统中的搜索不知道是怎么实现的.对了上面while(TRUE) {}
如果优化的话cpu 还会100%吗?
Sleep()函数内部可能设置一个定时器,而在定时中断之前的计数工作(CPU脉冲频率)是由硬件完成的,这不需要CPU参与,所以就腾出很多时间来干别的个人看法而已