¿Creando el ServerSocket en un hilo separado?

Tengo un problema con el uso de unServerSocket en mi aplicacion

Estoy creando elServerSocket En el constructor de mi aplicación. El constructor del zócalo llama alaccept() Método para esperar a que un cliente se conecte.

El problema es que laaccept() El método es congelar toda mi aplicación hasta que un cliente se conecta. Así que me gustaría preguntar si hay una alternativa para crear el conjuntoServerSocket en un hilo aparte, que el constructor de laServerSocket y esaccept() ¿Se llama método al lado de mi aplicación principal?

Editar:

Gracias a Olivier por el consejo, poner el .accept en un ejecutable y crear un grupo de subprocesos para manejar las conexiones de clientes.

Ese es mi código en este momento:

  public void start(){

      final ExecutorService clientProcessingPool = Executors.newFixedThreadPool(10);

      Runnable serverTask = new Runnable() {
          @Override
          public void run() {

              try {
                  serverSocket = new ServerSocket(port);

                  while (true) {
                      Socket clientSocket = serverSocket.accept();
                      objectout = new ObjectOutputStream(clientSocket.getOutputStream());
                      clientProcessingPool.submit(new ClientTask(clientSocket,objectout)); 
                  }
              } catch (IOException e) {
                  System.err.println("Accept failed.");
              }

          }
      };

¡Todo funciona bien! ¡Gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta