Tengo un escenario en el que quiero que un hilo duerma durante un tiempo específico.¿Cómo hacer que un hilo duerma durante un tiempo específico en Java?
Código:
public void run(){
try{
//do something
Thread.sleep(3000);
//do something after waking up
}catch(InterruptedException e){
// interrupted exception hit before the sleep time is completed.so how do i make my thread sleep for exactly 3 seconds?
}
}
Ahora ¿Cómo manejo el caso en el que el hilo que estoy tratando de correr es golpeado con una excepción interrumpido antes de que el total del sueño? También, ¿se despierta el subproceso después de ser interrumpido y pasa a estado ejecutable o cuando solo después de pasar a ejecutable el flujo pasa al bloque catch?
La interrupción puede provenir de un evento externo, como una solicitud de 'cierre gracioso' del sistema operativo. –
@Tony: es el mismo principio. la interrupción aún indica una solicitud deliberada para cancelar el hilo, no es algún tipo de evento casual que el hilo sea "golpeado", como parece indicar la fraseología del OP. –