2009-05-21 7 views

Respuesta

15

Porque algo más podría bloquear la instancia, entonces tendría un punto muerto.

Si bloquea el objeto que ha creado específicamente para ese fin, sabrá que tiene el control completo, y nada más se bloqueará inesperadamente.

+1

Instancia, no clase. – Shog9

+0

Sloppy de mi parte Debidamente editado. –

+0

¡Es una característica, no un error! ¿qué otra clase quiere obtener acceso exclusivo específicamente a esta instancia? – Andy

2

Si bloquea algo público, tanto la clase como algunas otras clases pueden intentar obtener un bloqueo. Es bastante fácil crear un objeto de sincronización, y siempre es preferible;

private syncLock = new Object(); 
Cuestiones relacionadas