[ https://issues.apache.org/jira/browse/LANG-609?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12846469#action_12846469 ]
Henri Yandell commented on LANG-609: ------------------------------------ Sounds good. > Support lazy initialization using atomic variables > -------------------------------------------------- > > Key: LANG-609 > URL: https://issues.apache.org/jira/browse/LANG-609 > Project: Commons Lang > Issue Type: New Feature > Components: lang.concurrent.* > Reporter: Oliver Heger > Priority: Minor > Fix For: 3.0 > > > In the new concurrent package there is already the {{LazyInitializer}} class > implementing the double-check idiom for lazy initialization of instance > fields. Another way to perform initialization lazily would be the usage of > atomic variables. This solution would not need synchronization at all. If > there is low contention (not many threads in parallel), it is more efficient > than synchronized access. Its drawback is that the initialization may be done > multiple times if multiple threads access the initializer almost at the same > time (however, it can be guaranteed that always the same object created by > the initializer is returned). > This is a proposal to add an {{AtomicInitializer}} class as an alternative to > {{LazyInitializer}} that operates on {{AtomicReference}} variables. > In order to make the initializers smoothly exchangable, it would make sense > for them to share a common interface. This interface could also be > implemented by the {{BackgroundInitializer}} class. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.