Netty的ChannelFuture.channel().closeFuture().syncUninterruptibly();作用

基本上Netty的server:ChannelFuture channelFuture = serverBootstrap.bind(port).syncUninterruptibly();//绑定端口,开启监听

后面都会加上这句channelFuture.channel().closeFuture().syncUninterruptibly();那这行代码到底有什么作用呢?具体没有深入源码,只随笔记录一下心得(个人理解,如有错误还请指正):

作用:服务端管道关闭的监听器并同步阻塞,直到channel关闭,线程才会往下执行,结束进程;

          主线程执行到这里就 wait 子线程结束,子线程才是真正监听和接受请求的,子线程就是Netty启动的监听端口的线程;

          即closeFuture()是开启了一个channel的监听器,负责监听channel是否关闭的状态,如果未来监听到channel关闭了,子线程才会释放,syncUninterruptibly()让主线程同步等待子线程结果。(也不清楚这样的理解对不对)

补充:.channel.close()才是主动关闭通道的方法。

猜你喜欢

转载自blog.csdn.net/yzh_1346983557/article/details/86554837