正在执行的其他任务不能保证及时释放cpu。得一直等到当前任务完成,运行时才有机会去执行到来的消息。如果当前任务消耗时间超过100us。那肯定会丢消息。 或者说不需要当前任务时间长,只要它正赶上消息到来的时间没处理完,那就会丢消息。
可以考虑轮询消息?这样会浪费cpu。
【 在 AlphaO 的大作中提到: 】
: 只要是非实时系统,大概就都不行,换成C和C++更难搞定
: 一次消息16KB,相邻两次消息间隔不定,最长约100us,最短约4~5us
: 用异步任务就会经常错过下一次消息,总怀疑是异步运行时的问题,而且怀疑异步IO会频繁触发系统调用,导致内核态/用户态切换,存在一个不确定开销。 不知道怀疑的点是否合适
: ...................
--
FROM 125.34.113.*