Netty中两种Keepalive的区别

在Server端开启TCP keepalive: 两种方式

serverBootstrap.childOption(ChannelOption.SO_KEEPALIVE, true);
serverBootstrap.childOption(NioChannelOption.SO_KEEPALIVE,true)

提示:“.option(ChannelOption.SO_KEEPALIVE,true)”存在,但是无效。

两种方式表面来看没啥大区别,但是在跟踪源码的时候有这么一节:

  在"NioSocketChannel"中有这个方法:

if语句里的"NioChannelOption.setOption()"和if外的调用“super.setOption()”其实就是区别所在,

if语句里进入则:

而外面的调用则是:

不难看出,上面的调用是JDK调用,下面的则是写一堆if...else来确定的,很明显,下面的方式没有上面的好

原文地址:https://www.cnblogs.com/-qilin/p/12069770.html

时间: 2024-10-13 16:23:16

Netty中两种Keepalive的区别的相关文章

JSP中两种include的区别

首先说明这两种都是什么: <%@ include file=”relativeURI”%> 可以叫作静态include(静态包含),是jsp指令中的一种,(JSP指令控制JSP编译器如何去生成servlet(servlet是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web内容.狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类别,一般情况下,人们将Servlet理解为后者.-维基百科) <js

JSP 中两种 include 的区别

转自:http://www.cnblogs.com/lazycoding/archive/2011/04/04/two_include.html <%@include file="relativeURI"%> 可以叫作静态include(静态包含),是jsp指令中的一种. <jsp:include page=”relativeURI” flush=”true” />叫作动态include(动态包含),是jsp动作的一种. 引入内容的不同 <%@includ

SVN 中两种Revert方式的区别

SVN中,当我们需要revert之前的commit的时候,有两个选项: 1. Revert to this revision 2. Revert changes from this revision 下面说一下两种方式的区别: 假设我们有四个连续的commit : 1, 2, 3, 4 对于commit 2 选择Revert to this revision,那么,只有1,2的改变被保留,3, 4的改变会被取消. 选择 Revert changes from this revision,那么,1

Java中serialVersionUID的解释及两种生成方式的区别(转载)

转载自:http://blog.csdn.net/xuanxiaochuan/article/details/25052057 serialVersionUID作用:        序列化时为了保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性.有两种生成方式:       一个是默认的1L,比如:private static final long serialVersionUID = 1L;       一个是根据类名.接口名.成员方法及属性等来生成一个64位的哈希字段,比如:    

Java中Compareable和Comparator两种比较器的区别

Java中Compareable和Comparator两种比较器的区别 1.引言 在java这个处处是对象的世界里,对两个对象进行按某一属性进行比较是特别常见的需求.比如书店中的书按照价格比较,亦或者是学生按照成绩进行排名等等. 对于JDK8而言,有三种实现对象比较的方法: 1.在需要比较的对象类中覆写Object类的equals()方法: 2.需要比较的类继承Comparable接口,然后在其类内部实现compareTo()方法: 3.抛去需要被比较的类,在其外部自定义一个单独的对象比较器,继

PHP中数组合并的两种方法及区别介绍

PHP数组合并两种方法及区别 如果是关联数组,如下: 复制代码代码如下: $a = array( 'where' => 'uid=1', 'order' => 'uid', ); $b = array( 'where' => 'uid=2', 'order' => 'uid desc', ); 1. array_merge,如果两个数组存在相同的key,后面的一个会覆盖前面的 复制代码代码如下: <?php $c = array_merge($a, $b); var_expo

UIImage两种初始化的区别

UIImage可以通过以下两种方式进行初始化: 1 //第一种初始化方式:[注意使用这种初始化的时候如果是png格式的可以不给后缀名,根据屏幕的的分辨率去匹配图片] 2 UIImage *image = [UIImage imageNamed:@"v_red_heart_selected"]; 1 //第二种初始化方式:[必须拼接图片的全名称,否则image的路径为空] 2 NSString *filePath = [[NSBundle mainBundle] pathForResou

UIimage两种初始化的区别 广告轮播封装

UIimage两种初始化的区别 第一种初始化: UIImage *image = [UIImage imageNamed:@"xxx"];  注意(这种方法加载的图片如果后缀名是png的,可以不写后缀名,根据屏幕分辨率自己去匹配图片) 第二种初始化: NSString *path = [[NSBundle mainBundle] pathForResource:@"xxx.png" ofType:nil]; UIImage *image = [[UIImage al

jsp两种include指令区别

[转]:http://www.cnblogs.com/lazycoding/archive/2011/04/04/two_include.html <%@ include file="relativeURI"%> <jsp:include page="relativeURI" flush="true" /> 首先说明这两种都是什么: <%@ include file="relativeURI"%&