NioWorker.run调用SelectorUtil.select,它选择500毫秒超时。
NioClientSocketPipelineSink.Boss.run调用select超时500毫秒。
NioServerSocketPipelinkSink.Boss.run也会在1000毫秒超时时调用select。
因此,即使网络上没有任何反应,每个工作人员每秒至少唤醒一次。这是针对某些问题的解决方法吗?虽然好的事件驱动程序如果什么也没发生就不能醒来(即用无限超时调用“select”)。消息来源没有解释。
答案 0 :(得分:0)
如果你想关闭服务器怎么办?如果我们不使用超时,我们只会在真实事件来自网络时醒来,可能需要很长时间才能以干净的方式关闭(可能永远不会)。 在大多数情况下,这些超时是可以接受的,我们不必在发出shutdown命令后等待太长时间,并且检查事件循环不占用太多CPU资源。