Double Checked Locking

1 resposta
Paulo_Silveira

Impressionante isso aqui:

http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html

Eh um problema que pode acontecer inumeras vezes.

Se voce tem um singleton, e no getInstance() voce ve se ele eh null, instancia ele, voce pode isntancias duas vezes o singleton, e ficar soh com a referencia do ultimo. E eu nunca sincronizava os getInstances dos meus singletons. alias, nunca vi ninguem sincronizar.

Sincronizando resolve, porem gasta muito tempo para pegar o lock. Ele tenta resolver soh sincronizando a parte da instanciacao, mas mostra direitinho que tambem nao funciona, voce pode ter serios problemas de concorrencia, ja que a isntancia pode estar no MEIO da chamada ao construtor…

incrivel nao?

1 Resposta

Rafael_Steil

Interessante, muito interessante… em especial, a parte

“After understanding those, you may be tempted to try to devise a way to “fix” the double-checked locking idiom. Your fixes will not work:”

Mata a pau :slight_smile:

Rafael

Criado 22 de abril de 2003
Ultima resposta 22 de abr. de 2003
Respostas 1
Participantes 2