怎样实现精度小于秒的延时或记录用户回应的时间?
来源:互联网 发布:linux 修改字符编码 编辑:程序博客网 时间:2024/05/06 03:18
怎样实现精度小于秒的延时或记录用户回应的时间?
很不幸, 这没有可移植解决方法。下面是一些你可以在你的系统中寻找的函数: clock(), delay(), ftime(), getimeofday(), msleep(), nap(), napms(),nanaosleep(), setitimer(), sleep(), Sleep(), times() 和usleep。至少在Unix 系统下, 函数wait() 不是你想要的。函数select() 和poll() (如果存在) 可以用来实现简单的延时。在MS-DOS 下, 可以重新对系统计时器和计时器中断编程。这些函数中, 只有clock() 在ANSI 标准中。两次调用clock() 之间的差分就是执行所用的时间, 如果CLOCKS PER SEC 的值大于1, 你可以得到精确度小于秒的计时。但是, clock() 返回的是执行程序使用的处理器的时间, 在多任务系统下,有可能和真实的时间相差很多。
如果你需要实现一个延时, 而你只有报告时间的函数可用, 你可以实现一个繁忙等待。但是这只是在单用户, 单任务系统下可选, 因为这个方法对于其它进程极不友好。在多任务系统下, 确保你调用函数, 让你的进程在这段时间进入休眠状态。可用函数 sleep(), select() 或poll() 和alarm() 或setitimer()实现。
对于非常短暂的延时, 使用一个空循环颇据有诱惑力:
long int i;
for (i = 0; i < 1000000; ++i)
;
但是请尽量抵制这个诱惑!因为, 经过你仔细计算的延时循环可能在下个月因为更快的处理器出现而不能正常工作。更糟糕的是, 一个聪明的编译器可能注意到这个循环什么也没做, 而把它完全优化掉。
0 0
- 怎样实现精度小于秒的延时或记录用户回应的时间?
- 急!查询所有用户两次登录的时间间隔小于5分钟的所有记录,能用自连接实现吗?
- linux 延时的精度
- 用select实现精确到睡眠时间小于1秒的sleep函数
- linux下用select实现精确到睡眠时间小于1秒的sleep函数
- C或C++调用Windows系统函数 实现延时 或 获取当前时间的处理
- 怎样在5秒内从5亿记录的用户积分表实时得到用户的排名
- 怎样睡眠小于一秒
- mysql查询数据库中时间小于1分钟的记录
- 记录用户上次访问时间的代码实现
- 给每条记录的时间增加随机秒数
- 实现“记录用户登录时间和退出时间,同时记录用户IP,并且要记录用户IP对应的省和城市地址”
- jeesite框架,时间查询,前面的时间选择要小于后面的时间实现
- 创建独立线程来输出小于或等于用户输入数的所有素数
- 用户输入一个整数,然后显示所有小于或等于该数的素数!
- UBOOT中的时间处理及延时函数的实现方法
- UBOOT中的时间处理及延时函数的实现方法
- 记录用户总在线时间的HACK
- lightoj 1056
- 对checkbox进行多选删除
- Xcode自动注释插件
- 知乎问答链接
- 为 Android* 设备构建动态 UI
- 怎样实现精度小于秒的延时或记录用户回应的时间?
- 陈欧口述:如何凭“四大质疑”将企业做上市
- Linux的SOCKET编程详解
- Python递归实现Easyui combotree树
- 什么是闭包
- 玉林民间的“夏至荔枝狗肉节” 到底该延续,还是取缔
- 关于JavaMail包和J2EE包冲突导致无法发送邮件问题
- socket通信需要注意的地方
- OCP 1Z0 052 18