Windows与Linux系统实现延迟的比较+Windows下实现微秒延迟

原创 2016年05月30日 15:03:28
在VC中Sleep中的第一个英文字符为大写的"S"
在标准C中是sleep, 不要大写。下面使用大写的来说明(具体用什么看你用什么编译器. 简单的说VC用Sleep, 别的一律使用sleep)
Sleep函数的一般形式:
            Sleep(unsigned long);

其中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是

#inlcude <windows.h>
Sleep(1000);


在Linux下,sleep中的“s”不大写

sleep()单位为秒,usleep()里面的单位是微秒。

在内核中,sleep的实现是由pause函数和alarm函数两个实现的。

特别注意在Codeblocks环境下是无法使用sleep函数的,因为在windows上Codeblocks采用mingw(Gnu在Window环境下的编译器,

可以充分使用WindowsApi)作为编译器,而在stdlib.h中sleep的说明如下:_CRTIMP void __cdecl __MINGW_NOTHROW _sleep (unsigned long) __MINGW_ATTRIB_DEPRECATED;可以认为mingw舍弃了sleep函数,建议用Sleep实现sleep。

#include <unistd.h>
sleep(1);


Windows下实现微秒延迟(并不完全精确)

void delay_us(void)
{
  LARGE_INTEGER litmp;
  LONGLONG QPart1, QPart2;
  double dfMinus, dfFreq, dfTim;
  QueryPerformanceFrequency(&litmp);
  dfFreq = (double)litmp.QuadPart;// 获得计数器的时钟频率
  QueryPerformanceCounter(&litmp);
  QPart1 = litmp.QuadPart;// 获得初始值
  do {
    QueryPerformanceCounter(&litmp);
    QPart2 = litmp.QuadPart;//获得中止值
    dfMinus = (double)(QPart2-QPart1);
    dfTim = dfMinus / dfFreq;// 获得对应的时间值,单位为秒
  }while(dfTim<0.000001);
}
int main()  
{  
   printf("The start clock is: %ld\n", clock());  
   delay_us();
   printf("The end clock is: %ld\n", clock());  
   system("pause");
   return 0;  
}


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

linux和windows下,C/C++的sleep函数

简介:  函数名: sleep   功 能: 执行挂起一段时间   用 法: unsigned sleep(unsigned seconds);   在VC中使用带上头文件  ...

usleep使用

前几天分析MAC上的一段代码,偶然看到usleep这个函数,打开MSDN居然查不到这个函数,对应的在windows上,只有Sleep函数。百度了一下:语法: void usleep(int micro...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

windows下实现微秒级的延时

1.微秒级的延时肯定不能基于消息(SetTimer函数),因为一出现消息堵塞等就会影响精 度,而且setTimer单位才是毫秒.实际响应时间可能要到55毫秒左右. 2.微秒级的延时也不能不能基于中...

hadoop基础-------虚拟机(三)-----VMware虚拟机下linux系统的与windows主机实现复制粘贴

vmware虚拟机安装了linux系统之后,为了实现更加强大的功能,比如说直接从windows主机拖文件进入linux,以及加强linux的性能,或者实现文本的复制粘贴,我们一般都要安装vmware ...

Windows高精度微秒级(并发)定时器实现

自从上次封装微秒延时函数后,利用空闲时间试着封装一个微秒定时器(类似MFC定时器形式)使用起来效果还不错。关于定时器的几点介绍: 1.设计采用了自动释放定时器节点方式(增加虚析构函数在内部做...

如何在VMware中实现Linux系统与Windows系统的文件交换

1.打开虚拟机的Linux系统。 2.选择虚拟机VMware Workstation下的菜单【VM】选项中的【Install Vmware Tools】选项。此时,虚拟机会自动将VMware Too...

linux中线程的实现以及跟windows系统的比较

1.在linux内核中(只说内核,即核心级线程的实现),它并不区分进程跟线程的区别,实际上,它都是将它们当做进程来实现的,通是通过fork,然后fork调用clone函数。内核级线程有自己的task_...

Flashtec NVRAM加速卡以次微秒级延迟实现一千五百万次 IOPS

PMC新近为超大规模数据中心的运营者及企业级存储供应商提供了一款崭新的产品,助其打造更为前卫的存储基础设施。PMC公司成立于三十年前,作为一家广受业界认可的半导体公司,过去专营通信领域的设备,于七年前...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)