1, métodos de objeto sincronizados y bloqueadas
cerradura subproceso es el objeto.
1) Un hilo de objeto sostener objetos Lock Lock, hilo B puede llamar al tipo de objeto objeto de método no sincronizada de forma asíncrona
2) Un hilo ocupa el primer objeto objetos Lock, hilo B si el tipo de objeto del objeto sincronizado llamada a un método en este momento, usted tiene que esperar, que se sincroniza.
2, lectura sucia (DirtyRead)
Ejemplo:
público de clase DirtyReadTest { públicas estáticas void main (String [] args) { try { PublicVar publicVar = nueva PublicVar (); ThreadA hilo = nuevo ThreadA (publicVar); hilo.start (); Thread.sleep ( 200 ); publicVar.getValue (); } Catch (Exception e) { e.printStackTrace (); } } Estática clase ThreadA extiende Tema { privadoPublicVar publicVar; pública ThreadA (PublicVar publicVar) { este .publicVar = publicVar; } @ Override pública vacío run () { súper .run (); publicVar.setValue ( "B", "BB" ); } } Estática clase PublicVar { públicas nombre de usuario String = "A" ; pública cadena de contraseña = "AA" ; sincronizada pública vacío setValue (nombre de usuario, String contraseña) { tratar { este .username = nombre de usuario; Thread.sleep ( 1000 ); este .password = contraseña; System.out.println ( "nombre de hilo método setValue =" + Thread.currentThread () getName () + "\ tusername =" + nombre de usuario + "\ tpassword =" +. Contraseña); } Catch (Exception e) { e.printStackTrace (); } } // 因为getValue方法是非sincronizada方法,所以造成了脏读 pública vacío getValue () { System.out.println ("getValue nombre hilo method =" + Thread.currentThread () getName () + "\ tusername =" + nombre de usuario + "\ tpassword =" +. contraseña); } } }
Los resultados se muestran:
3, reentrante bloqueo sincronizado
El concepto de "bloqueo de reentrada" es:
Pueden vivir su propio bloqueo interno de nuevo. Por ejemplo, hay un hilo adquirir un bloqueo de un objeto, entonces el bloqueo de objeto no ha sido puesto en libertad, de nuevo cuando se quiere adquirir un bloqueo de este objeto todavía puede entrar, si no bloqueo de reentrada, causaría un punto muerto.
cerradura de reentrada también es compatible con los hereda de la clase padre-hijo el medio ambiente: la herencia, la subclase puede llamar al método de sincronización de la clase padre de la "cerradura de reentrada."
4, de liberación del bloqueo anormal, automática
Aparece hilo anormales, se libere el bloqueo hilo actual