java – 延迟加载的单例:双重检查锁定与按需持有者惯用语初始化
作者:互联网
我需要在并发环境中延迟加载资源.加载资源的代码只能执行一次.
Double-checked locking(使用JRE 5和volatile关键字)和Initialization on demand holder idiom似乎都很适合这项工作.
仅仅通过查看代码,按需初始化持有者习惯看起来更干净,更有效(但是嘿,我猜这里).不过,我必须小心并记录我的每一个单身人士的模式.至少在我看来,很难理解为什么代码会在现场写出来……
我的问题是:哪种方法更好?为什么?
如果你的答案是否定的.您将如何在Java SE环境中解决此要求?
备择方案
我可以使用CDI而不强制它在整个项目中使用吗?那里有文章吗?
解决方法:
添加另一个,也许是更清洁的选项.我建议枚举变化:
What is the best approach for using an Enum as a singleton in Java?
标签:java,concurrency,design-patterns,singleton,lazy-loading 来源: https://codeday.me/bug/20191004/1852352.html