易截截图软件、单文件、免安装、纯绿色、仅160KB

linux精确到0.1毫秒

我需要做一个计时器,要求每隔12.5ms(毫秒)自动加1.怎么做到,谁有相关的方法。我用过select,好像不行!usleep就更不用说了肯定也不行! 我看有人说用pselect,我还没试,不过感觉恐怕也不行哦。。。。。。。。。。。。。。
usleep()是微秒级别的延时哪里不行?


gettimeofday() 应该也可以吧

不论是哪个sleep,都不能实现精确的睡眠,这个跟CPU硬件相关,我以前也曾经试图这么做,结果不行,发现只能精确到10ms,10ms内就每次睡眠的时间不一样了。楼主可以结合usleep实现平均1ms实现计时器加1。思路:记录上次定时器变化的时间t1,取当前时间t2,比较t2和t1,如果t2-t1 <1ms,计时器不加,并跟新t1=t2;如果t2-t1=Nms>1ms,则计时器加N,更新t1=t2;如此循环,总的来说,可以实现平均每ms加1.

引用
不论是哪个sleep,都不能实现精确的睡眠,这个跟CPU硬件相关,我以前也曾经试图这么做,结果不行,发现只能精确到10ms,10ms内就每次睡眠的时间不一样了。楼主可以结合usleep实现平均1ms实现计时器加1。思路:记录上次定时器变化的时间t1,取当前时间t2,比较t2和t1,如果t2-t1 <1ms,计时器不加,并跟新t1=t2;如果t2-t1=Nms>1ms,则计时器加N,更新t1=t2;?-


精确是不可能的,一般在多线程中使用定时器的话,多线程上下文之间的切换的时间以及线程等待的时间,不可能做到精确。

个人同意2楼的想法
写了个程序,但手头没有linux测试.仅供参考,不保证绝对正确
C/C++ code:

#include<sys/time.h>
#include<unistd.h>


相关问答:

使用Struts2上传文件,在linux下报错

使用Struts2上传文件,在linux下报错
2009-09-29 14:56:20,801 [org.apache.struts2.interceptor.FileUploadInterceptor]-[ERROR] Processing of multipart/form-data request failed. c:/temp/upload__1dcd07ee_12 ......

Linux Socket HTTP请求的问题,高手进!

小弟最近需要一个用socket获取html文档的代码,但是老是不能获取完整的html源码。原因不明,望高手指点!
C/C++ code:

char *Http_GET(char *host,int port,char *data) //发送GET请求
{
char response[2 ......

windows文件系统 比 linux文件系统慢在哪儿?

一直用svn来做资源的管理,
现在发现windows下取svn 要10个小时左右(资源大约有20G,全是小文件)
linux下取仅用40分钟,

请问linux的文件系统在哪儿比windows文件系统强力?

svn 可够慢的。

在 ......

北京急招linux、PHP网络应用开发

我们隶属中科院计算所网络重点实验室(http://www.ict.ac.cn/survey/channel/detail443.asp)基础设施课题组.
现因项目和业务拓展的需要,特需要招聘与项目相关的网络应用工程师1-2名。

具体要求如下。有意者 ......

关于linux下socket编程的问题! - C/C++ / C语言

由于我才刚刚接触socket编程,自己写了一个简单程序,但就是在运行的时候出现段错误,无法解决,现在我把源代码贴出来,请各位大虾指正一下!谢谢!
#include<stdio.h>
#include<stdlib.h>
#include& ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号