gpt4 book ai didi

java - Netty 5.0.0 closeFuture().sync() 从未完成

转载 作者:行者123 更新时间:2023-12-02 03:02:29 25 4
gpt4 key购买 nike

我目前正在使用 Netty 用 Ja​​va 编写一个程序,我偶然发现了以下问题:

每当我在“引导”完成后尝试使用channel#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() 是一个 future ,将在 channel 关闭时完成。这意味着如果 channel 尚未关闭,则 future 将永远不会完成,并且 sync() 将无限期阻塞。

关于java - Netty 5.0.0 closeFuture().sync() 从未完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42256491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com