Me doy cuenta de que el bloque sincronizado proporcionado en Java es básicamente una implementación de un mutex reentrante. Sin embargo, ¿el bloque sincronizado es atómico?Bloque sincronizado - Java
Entonces, ¿cómo se manejan las interrupciones para los hilos que se están ejecutando actualmente dentro del bloque sincronizado? ¿Libera simplemente el bloqueo revocando todos los cambios realizados hasta el momento?
EDITAR: Con respecto a la parte de interrupciones de la pregunta, ¿cómo se maneja generalmente en Java. Por ejemplo, veo muchos ejemplos de código Java en los que los desarrolladores detectan una interrupción cuando (digamos) un hilo está en la cola de espera. Sin embargo, dentro del bloque catch todo lo que hacen es imprimir que se ha producido una interrupción. Tengo más curiosidad sobre lo que realmente le sucede a ese hilo? ¿Se lo quitó de la lista de espera?
Así que, básicamente, es hasta un programador para atrapar el evento Interrumpir y renunciar al bloqueo en caso de que esté dentro del bloque sincronizado? – Hari
@Titan El bloque sincronizado es más equivalente a un bloqueo de ámbito, por lo que renunciar al bloqueo se realiza simplemente dejando ese ámbito. Tenga en cuenta que los eventos de interrupción son simplemente un mecanismo para el control de subprocesos de bajo nivel, mientras que podrían usarse en momentos similares, son conceptos ortogonales. – Bringer128