运行 单独线程中的 netty 服务器

run netty server in separate thread

我有下一个应用程序 运行我的应用程序:

// class Server

public static void runServer(int port) {
  var boss = new NioEventLoopGroup()
  var worker = new NioEventLoopGroup()
  var serverBootstrap = new ServerBootstrap()
  try {
    serverBootstrap.group(boss, worker)
    // initilizers  
  } finally {
    // shutdown
  }
}


我还有一个入口点 class:


// initialize logging
Server.run(some_port);
// other code in the application 

问题是:当我运行我的netty服务器时,我没有初始化其他代码(在Server.run之后)。如何在 netty 中正确地做到这一点? 我的基本想法是:运行 在一个单独的线程中,例如:

new Thread {
  public void run() {
     Server.run(some_port);
  }  
}

正确吗?或者我错过了 Netty 方法的一些东西?

您的 runServer 方法很可能 return 您绑定的 Channel 也是如此。在这种情况下,您还应该能够在它之后 运行 更多代码。