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的时候就可能要被其他线程抢占。这样的延时就不可能准确。这是我自己的理解。
阅读(3095) | 评论(1) | 转发(0) |