Hola Ezequiel, Creo que el autor del blog, al tomar como equivalentes ambas implementaciones comete un error. El autor señala que hay un problema posible con la inicializacion static, pero pierde de vista otra cuestion. La implementacion no static tiene la ventaja de que la creacion del singleton se demora hasta que es necesaria.
En mi opinion, ambas implementaciones son correctas. Si sirve para tu caso la inicializacion estatica, creo que es la mejor. Sin embargo, a veces es util demorar la inicializacion del singleton tanto como sea necesario o directamente evitarla si el singleton nunca es usado. Si este es el caso y estas trabajando en un ambiente multithreaded, no queda otro remedio que utilizar bloqueos. El double check locking es necesario tambien, para evitar la condicion de carrera. Hay otros puntos interesantes relacionados con el bloqueo. Creo que es muy importante utilizar una referencia subrogada privada para el bloqueo y evitar el lock(this). Carlos > -----Original Message----- > From: [email protected] [mailto:[EMAIL PROTECTED] On > Behalf Of Ezequiel Díaz Pacheco > Sent: Miércoles, 07 de Febrero de 2007 09:47 p.m. > To: [email protected] > Subject: !-> [puntonet] Double-Checking, Locking,vo latile y > demás cool codes > > En los blogs de geeks.ms hicieron un post acerca de si vale o > no la pena utilizar double checking en los singletons. > > El post está acá > http://geeks.ms/blogs/unai/archive/2007/02/08/double-checking- > locking-volatile-y-dem-s-cool-codes.aspx > > ¿Qué opinan? > > Ezequiel, > Saludos. >
