Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 每个烦躁的工人每秒醒来2次。为什么?_Java_Networking_Asynchronous_Nio_Netty - Fatal编程技术网

Java 每个烦躁的工人每秒醒来2次。为什么?

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”,无限超时)。来源中没

niowerner.run调用SelectorUtil.select,该选项的选择超时为500毫秒

NioClientSocketPipelineSink.Boss.run调用选择500毫秒超时

NioServerSocketPipelinkSink.Boss.run同时调用select并超时1000毫秒


因此,即使网络上没有任何事情发生,每个工作者每秒至少醒来一次。这是一个解决问题的方法吗?我认为好的事件驱动程序不能在什么都没发生的情况下被唤醒(例如,调用“select”,无限超时)。来源中没有任何解释。

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

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

有Selector.wakeup和Selector.close用于关机。有Selector.wakeup和Selector.close用于关机。