cómo interrumpir una llamada scanner.nextline ()

Hay muchos hilos en SO sobre la interrupción de la lectura del sistema, pero lo que busco aquí es algún tipo de consejo sobre cómo codificar mejor lo que estoy tratando de lograr.

tengo ungetlogin() método que necesita hacer lo siguiente: pedirle a un usuario que ingrese los detalles del entorno de inicio de sesión deseado, si después de 6 segundos el usuario no ha ingresado un valor válido ("en vivo" o "prueba"), configure la variable userlogin en "prueba" y devuélvalo a la persona que llama

He tomado el siguiente enfoque para elgetlogin() implementación:

lanza dos hilos que hacen lo siguiente:

thread1 crea un objeto escáner y luego llamascanner.nextline() y dependiendo de la entrada del usuario establecer una variableuserlogin. Interrumpe el hilo 2 antes de salir.thread1.thread2 espera 6 segundos y si despues de esouserlogin aún no está establecido, luego establezca un valor predeterminado parauserlogin. Interrupcionesthread1 antes de salirthread2.

unirsethread2 para parar principalThread de regresaruserlogin como nulo

volver userlogin

El problema que tengo con el enfoque es quescanner.nextline() no interrumpe cuandothread2 llamadasthread1.interrupt, por eso no me unothread1 en el paso 2 como el principalThread colgaria ¿Hay una manera de conseguirthread1 para completar despuesthread2 lo interrumpe? ¿O es este enfoque completamente excesivo y hay una manera mucho más sencilla de lograr el contrato?

Respuestas a la pregunta(4)

Su respuesta a la pregunta