2

NioWorker.run 调用 SelectorUtil.select 并选择 500 毫秒超时。

NioClientSocketPipelineSink.Boss.run 以 500 毫秒超时调用 select。

NioServerSocketPipelinkSink.Boss.run 也以 1000 毫秒超时调用 select。

因此,即使网络上没有任何事情发生,每个工作人员每秒至少唤醒一次。这是针对某些问题的解决方法吗?如果没有发生任何事情,我认为好的事件驱动程序不能唤醒(即调用“选择”并无限超时)。消息来源没有解释。

4

1 回答 1

0

如果你想关闭服务器怎么办?,如果我们不使用超时,我们只会在来自网络的真实事件时唤醒,可能需要很长时间才能以干净的方式关闭(可能永远不会)。这些超时在大多数情况下是可以接受的,在发出关闭命令后我们不必等待太久,并且检查事件循环不会占用太多 CPU 资源。

于 2011-05-25T11:43:43.577 回答