我回答了一个棘手的问题。
我已经为我们的Android项目编写了一个netty服务器,但有时,当我尝试向连接的客户端发送内容时,我收到了RejectedExecutionException。
03-17 22:07:49.938 21708-22346 / htlhallein.at.serverdatenbrille_rewritten E / AndroidRuntime:FATAL EXCEPTION:Thread-9824 过程:htlhallein.at.serverdatenbrille_rewritten,PID:21708 java.util.concurrent.RejectedExecutionException:事件执行程序终止 at io.netty.util.concurrent.SingleThreadEventExecutor.reject(SingleThreadEventExecutor.java:707) at io.netty.util.concurrent.SingleThreadEventExecutor.addTask(SingleThreadEventExecutor.java:299) at io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:690) at io.netty.channel.AbstractChannel $ AbstractUnsafe.register(AbstractChannel.java:421) at io.netty.channel.SingleThreadEventLoop.register(SingleThreadEventLoop.java:60) at io.netty.channel.SingleThreadEventLoop.register(SingleThreadEventLoop.java:48) at io.netty.channel.MultithreadEventLoopGroup.register(MultithreadEventLoopGroup.java:64) at io.netty.bootstrap.AbstractBootstrap.initAndRegister(AbstractBootstrap.java:315) at io.netty.bootstrap.AbstractBootstrap.doBind(AbstractBootstrap.java:271) at io.netty.bootstrap.AbstractBootstrap.bind(AbstractBootstrap.java:267) 在io.netty.bootstrap.AbstractBootstrap.bind(AbstractBootstrap.java:242) at htlhallein.at.serverdatenbrille_rewritten.server.DatenbrillenServer $ Server.run(DatenbrillenServer.java:172) 在java.lang.Thread.run(Thread.java:841)
我不确定应该选哪个Event Executor? 运行服务器后,Exception会触发一行。 (Log.d(DatenbrillenServer.class.toString(),"停止服务器......");)
有没有人有想法,为什么会这样?
非常感谢!
答案 0 :(得分:1)
当您在调用shutdownGracefully()后尝试执行IO时会发生这种情况。在调用之前确保已完成所有IO