Double checked locking in Android Double checked locking in Android android android

Double checked locking in Android


The answer to this question implies that the memory models should be the same, and that the new double checked locking idiom will work.


I found a very good article about that question : http://www.javamex.com/tutorials/double_checked_locking_fixing.shtml

It clearly states 3 ways to fix DCL. And it looks like in your question, the Helper field should be declared volatile, otherwise it doesn't work.

When it comes to usage, i.e. RoboGucie in your case, I think I would favor the class loader method mentionned in the article. It's more clear to me and as efficient.