Java 每个烦躁的工人每秒醒来2次。为什么?
niowerner.run调用SelectorUtil.select,该选项的选择超时为500毫秒 NioClientSocketPipelineSink.Boss.run调用选择500毫秒超时 NioServerSocketPipelinkSink.Boss.run同时调用select并超时1000毫秒Java 每个烦躁的工人每秒醒来2次。为什么?,java,networking,asynchronous,nio,netty,Java,Networking,Asynchronous,Nio,Netty,niowerner.run调用SelectorUtil.select,该选项的选择超时为500毫秒 NioClientSocketPipelineSink.Boss.run调用选择500毫秒超时 NioServerSocketPipelinkSink.Boss.run同时调用select并超时1000毫秒 因此,即使网络上没有任何事情发生,每个工作者每秒至少醒来一次。这是一个解决问题的方法吗?我认为好的事件驱动程序不能在什么都没发生的情况下被唤醒(例如,调用“select”,无限超时)。来源中没
因此,即使网络上没有任何事情发生,每个工作者每秒至少醒来一次。这是一个解决问题的方法吗?我认为好的事件驱动程序不能在什么都没发生的情况下被唤醒(例如,调用“select”,无限超时)。来源中没有任何解释。如果您想关闭服务器怎么办?如果我们不使用超时,我们只会在真实事件来自网络时才醒来,以干净的方式关闭可能需要很多时间(可能永远不会)。
这些超时在大多数情况下都是可以接受的,我们不必在发出shutdown命令后等待太长时间,检查事件循环也不会占用太多CPU资源。如果您想关闭服务器,该怎么办?如果我们不使用超时,我们只会在真正的事件来自网络时醒来,以干净的方式关闭可能需要很多时间(也许永远不会)。
这些超时在大多数情况下都是可以接受的,我们不必在发出shutdown命令后等待太长时间,而且检查事件循环不会占用太多CPU资源。有Selector.wakeup和Selector.close用于关机。有Selector.wakeup和Selector.close用于关机。