He leído que Thread.sleep()
pausará el hilo actualmente en ejecución durante el tiempo especificado, después del cual volverá al estado ejecutable esperando a que se ejecute.llamando a Thread.sleep() desde el contexto sincronizado en Java
Además, si se llama desde el contexto synchronized
, sleep()
no libera el bloqueo que contiene. Entonces me preguntaba cuándo liberará el bloqueo. Si el subproceso se pone en suspensión, nunca se ejecuta, por lo que siempre mantendrá el bloqueo consigo mismo y, a continuación, la forma en que otros subprocesos ingresan a los métodos/bloques sincronizados.
No estoy seguro de si estoy haciendo una pregunta válida. Pero por favor ayúdame.
Realmente, llamar a 'Thread.sleep() 'probablemente no sea una buena idea. Si hay algo que puedes hacer ahora, debes hacerlo ahora. Si tiene que esperar por algo antes de que haya algo que pueda hacer, debe esperar a que algo en lugar de dormir. –
@DavidSchwartz: Estoy de acuerdo. Si bien hay usos legítimos para 'Thread.sleep()', a menudo se usa donde no debería estar. – NPE
Bien explicado, pero diciendo "Para resumir, llamar a Thread.sleep() desde un bloque sincronizado probablemente no sea una buena idea". está yendo demasiado lejos. A veces quieres esperar y mantener el bloqueo. – Jesus