Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.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 Netty 5.0.0 closeFuture().sync()从未完成_Java_Netty - Fatal编程技术网

Java Netty 5.0.0 closeFuture().sync()从未完成

Java Netty 5.0.0 closeFuture().sync()从未完成,java,netty,Java,Netty,我目前正在使用Netty用Java编写一个程序,无意中发现了以下问题: 每当我尝试在“引导”完成后使用通道#closeFuture().sync(),它就永远不会完成任务并永远锁定主线程。没有抛出任何异常 我的启动代码: EventLoopGroup bossGroup = new NioEventLoopGroup(); EventLoopGroup workerGroup = new NioEventLoopGroup(); try { ServerBootstrap ser

我目前正在使用Netty用Java编写一个程序,无意中发现了以下问题:

每当我尝试在“引导”完成后使用通道#closeFuture().sync(),它就永远不会完成任务并永远锁定主线程。没有抛出任何异常

我的启动代码:

 EventLoopGroup bossGroup = new NioEventLoopGroup();
 EventLoopGroup workerGroup = new NioEventLoopGroup();
 try {
     ServerBootstrap serverBootstrap = new ServerBootstrap();
     serverBootstrap.group(bossGroup, workerGroup);
     serverBootstrap.channel(NioServerSocketChannel.class);
     serverBootstrap.childHandler(new IOLauncher());

     this.channel = serverBootstrap.bind(8192).sync().channel();

     System.out.println("Debug; closeFuture");
     this.channel.closeFuture().sync(); // This never finishes!
     System.out.println("Debug; closeFuture done");
 } catch (Exception e) {
     e.printStackTrace();
 } finally {
     bossGroup.shutdownGracefully();
     workerGroup.shutdownGracefully();
 }

按照预期工作,
closeFuture()
是一个在频道关闭时完成的未来。这意味着,如果频道尚未关闭,则未来将永远不会结束,
sync()
将无限期阻塞。

按照预期工作,
closeFuture()
是在频道关闭时完成的未来。这意味着,如果频道没有关闭,未来将永远不会结束,
sync()
将无限期阻塞。

修复了它,没有任何问题,这是一个愚蠢的问题。

修复了它,根本没有任何问题,这对我来说是一件愚蠢的事情。

这是否意味着我不必使用channel#closeFuture?您当前如何使用它是预期的用例,以便在服务器关闭时,主线程可以通过等待关闭来清理。但是,这意味着其他线程必须在某个时间点开始关闭。这是否意味着我不必使用通道#closeFuture?您当前如何使用它是预期的用例,以便主线程可以在服务器关闭时通过等待关闭来清理。但是,这意味着其他线程必须在某个时间点开始关闭。仅供参考:netty 5已被弃用。您可能会考虑迁移到NETY 4.1,然后在5FYI中投入太多时间:NETY 5被否决。您可能会考虑迁移到NETY 4.1,在5之前投入太多的时间。