Se llama a los bloques de hilos de Java al registrar el canal con el selector mientras se selecciona () ¿Qué hacer?

Tengo una pregunta básica. Por qué y cómo el método de registro de SelectableChannel puede estar en el bloqueo de llamadas. Déjame darte un escenario.

He creado un objeto Selector en la clase Registro de la siguiente manera.

<code>private static Selector selector = Selector.open();
</code>

También tengo un método en la misma clase (Registro) para registrar el canal con el selector.

<code>public static SelectionKey registerChannel(SelectableChannel channel, int ops)
                             throws IOException {
   channel.configureBlocking(false);
   return channel.register(selector, ops);
}
</code>

Y hay otra clase llamada Solicitud, que tiene un método que lee los datos de los canales, procesos y llamadas siguiendo el método para registrar el canal.

<code>selectonKey = Register.register(socketChannel, SelectionKey.OP_READ);
</code>

Aquí, en este punto, el hilo está bloqueado, sin dar una idea de lo que está esperando. He verificado que el selector está abierto. Por favor, ayúdame a entender cómo puedo resolver esto. ¿Hay algún bloqueo que pueda liberar?

Cualquier entrada sería apreciada.

Añadiendo a lo que describí. Otras pruebas revelaron que si el método Register.register se llama desde el mismo hilo, es capaz de registrarse, pero después de eso, si otro hilo intenta invocar el método, el hilo no avanza.

Respuestas a la pregunta(5)

Su respuesta a la pregunta