Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1239149
  • 博文数量: 264
  • 博客积分: 10772
  • 博客等级: 上将
  • 技术积分: 2325
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-25 11:54
文章分类

全部博文(264)

文章存档

2012年(4)

2011年(51)

2010年(31)

2009年(57)

2008年(51)

2007年(70)

分类: WINDOWS

2011-01-17 13:27:39

http://www.vckbase.com/document/viewdoc/?id=1301
看到了上面这篇文章

应该是针对单线程的。

在多线程的情况要,要想延时精确到毫秒。似乎是不可能的。
100个线程,每个线程循环延时100次,每次4毫秒。
在以上总共10000次延时中,有710次实际的延时超过了4.5毫秒


同样10000次延时1毫秒的情况如下。
总共10000次延时中,有231次实际的延时超过了1.5毫秒


线程优先级设为highest也只能改善,但无法解决这个问题。

实际这个是操作系统线程调试的问题。应该是无法解决的。
一个linux时间片的时间大概是5ms-800ms,假设是20ms。
时间片的定义是:从进程开始运行直到被抢占的时间
如果我这个线程在运行到19ms的时候开始延时4ms,这个延时超过了当前时间片。
在延时到1ms的时候就可能要被其他线程抢占。这样的延时就不可能准确。这是我自己的理解。
阅读(2972) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-03-08 14:07:45

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com