Warum ConcurrentHashMap.putifAbsent sicher ist?

Habe ich gelesen, für concurency seit gestern und ich weiß nicht viel Sachen... Aber einige Dinge beginnen zu bekommen, klar,...

Ich verstehe, warum double-check-locking nicht sicher (ich Frage mich, was ist die propability der seltene Zustand zu kommen) aber flüchtigen behebt das Problem in 1.5 +....

Aber ich Frage mich, ob dies geschieht mit putifAbsent

wie...

myObj = new myObject("CodeMonkey");
cHashM.putIfAbsent("keyy",myObj);  

Dann tut dies sorgt dafür, dass myObj wäre 100% intialiased, wenn ein anderer thread hat ein cHashM.get() ??? Da könnte es eine Referenz ist nicht vollständig initialisiert (die double-check-lock-problem)

InformationsquelleAutor GorillaApe | 2011-05-13
Schreibe einen Kommentar