Reactor定時器的精度取決于實現(xiàn)

字號:

由于Reactor在各個平臺的默認實現(xiàn)都取決于平臺的實現(xiàn),比如在Windows下默認的Reactor是WFMO_REACTOR,而在Linux和UNIX平臺,默認的Reactor是Select_Reactor,而Reactor的實現(xiàn)往往取決于使用的反應器底層實現(xiàn),而這些反應器的時間精度就決定了你的定時器的時間精度。下表大致反饋了一些常用的定時器的實現(xiàn)。
    表1 常用Raactor的實現(xiàn)
    Reactor
     反應器的底層實現(xiàn)
     時間精度
    ACE_Select_Reactor
     select函數(shù)
     使用struct timeval結構進行超時處理; timeval 結構可以精確倒微秒。
    Dev_Poll_Reactor
     poll或者而epoll
     timeout參數(shù)的單位是毫秒。
    ACE_WFMO_REACTOR
     WaitForMultipleObjects
     dwMilliseconds 的參數(shù)單位是毫秒
    不過作為服務器的開發(fā),我倒想不出什么地方需要精確到0.1s定時器的地方,了解一下差異性就足夠了。