java - Netty的future.channel().closeFuture().sync();到底有什么用?
问题描述
我看到很多Netty的例子都在末尾加上了这句话:future.channel().closeFuture().sync();
比如:
public class TimeServer { private int count = 0; public void bind(int port) {try { EventLoopGroup bossGroup = new NioEventLoopGroup(); EventLoopGroup workGroup = new NioEventLoopGroup(); ServerBootstrap b = new ServerBootstrap(); // (2) b.group(bossGroup, workGroup).channel(NioServerSocketChannel.class) // (3) .childHandler(new ChannelInitializer<SocketChannel>() {@Overrideprotected void initChannel(SocketChannel arg0) throws Exception { arg0.pipeline().addLast(new LineBasedFrameDecoder(1024)); arg0.pipeline().addLast(new StringDecoder()); arg0.pipeline().addLast(new ChannelInboundHandlerAdapter() {@Overridepublic void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { // ByteBuf buf = (ByteBuf) msg; // byte[] req = new // byte[buf.readableBytes()]; // buf.readBytes(req); // String body = new String(req, 'UTF-8'); System.out.println( 'The Time Server Received order:' + msg + '; the counter is:' + ++count); // String currentTime = 'QUERY TIME // ORDER'.equalsIgnoreCase(body) // ? new // Date(System.currentTimeMillis()).toString() // : 'BAD ORDER'; // // currentTime = currentTime + // System.getProperty('line.separator'); // ByteBuf resp = // Unpooled.copiedBuffer(currentTime.getBytes()); // ctx.writeAndFlush(resp);} });} }); ChannelFuture future = b.bind(port).sync(); System.out.println('Server start listen at ' + port); future.channel().closeFuture().sync();System.out.println('执行到这里 ' + port);} catch (InterruptedException e) { e.printStackTrace();} } public static void main(String[] args) {new TimeServer().bind(10000); }}
但是我看这行代码一直没有执行。请问这是怎么回事呢?
问题解答
回答1:不是没执行,是主线程到这里就 wait 子线程退出了,子线程才是真正监听和接受请求的。
相关文章:
1. javascript - 想给后台操作系统显示类似APP游戏中的新手操作指引流程怎么弄?2. javascript - 获取标签中的字符串3. java - 如何求多叉树两个任意节点的最短路径呢?4. css - input怎么修改光标的颜色?5. python - requests post问题6. javascript - js机制问题,是否都是等主线程执行完毕再执行异步,如果主线程有好几万行,或者上下文相关呢7. python - 字符串里的u’u00a1’怎么打印成中文8. docker 下面创建的IMAGE 他们的 ID 一样?这个是怎么回事????9. javascript - 清空Chrome缓存的疑问10. java - 关于柱状图表展示高度的问题。

网公网安备