Reactor定时器的精度取决于实现
因为REACTOR在每个平台的默认实现依赖于平台的实现,比如Windows中的默认Reactor是WFMO_REACTOR,而在Linux和UNIX平台中,默认Reactor是Select_Reactor,Reactor的实现往往依赖于所使用的Reactor的底层实现,而这些Reactor的时间精度决定了你的定时器的时间精度。下表大致给出了一些常用定时器的实现反馈。
表1常用Reactor
Reactor的实现
Reactor的底层实现
Time precision
ACE _ Select _ Reactor
Select函数
使用struct timeval结构进行超时处理;Timeval结构可以精确反转微秒。
dev _ poll _ reactor
poll或epoll
超时参数的单位为毫秒。
ace _ wfmo _ reactor
waitformulipleobjects
dw milliseconds的参数单位为毫秒
然而作为一个服务器开发,我想不出有什么地方的计时器应该精确到0.1s知道区别就够了。
0条评论