如何写好一个单例,并且考虑了线程安全?
来源:互联网 发布:java 指定jdk 编辑:程序博客网 时间:2024/05/17 07:13
推荐写法:
public class TestSington { private static TestSington instance; public static TestSington getIntance() { return Holder.instance; } public void init() { // dosomething } private static class Holder { static TestSington instance = new TestSington(); static { instance.init(); } }}
init函数适用于某些单例初始化需要参数配置的情况,若该单例的构造函数在初始化时需要参数,也可在static块中进行配置;
原理是利用了static第一次访问时必定会加载的运行机制结果,这样可以保证线程安全并在第一次getInstance时初始化,并省略了synchronized,节约资源;
阅读全文
0 0
- 如何写好一个单例,并且考虑了线程安全?
- 如何写好一个单例
- 写一下单例模式,考虑线程安全与线程不安全的情况
- 单例模式(线程安全考虑)
- 写一个线程安全的单例模式
- 写一个线程安全的单例模式
- 写一个线程安全的单例模式
- 单例模式如何做到安全并且高效?
- 如何写好Java的单例
- 考虑性能和线程安全的java单例模式实现
- C++ 单例模式,考虑线程安全和性能的几种方式
- singleton pattern的一个模板实现, 适用于单线程, 并且提供了Release方法
- 单例-线程安全
- 关于线程安全和可重入的区别,写得很好所以转过来了
- 关于线程安全和可重入的区别,写得很好所以转过来了
- 关于线程安全和可重入的区别,写得很好所以转过来了
- 单例模式的两种线程安全并且效率的写法
- 如何实现多个线程写、一个线程读的队列,并且所有线程间不需要等待同步
- easyui 在子tab页中打开新tab页(关于easyUI在子页面增加显示tabs的一个问题)
- 第一篇博客
- Mysql my.cnf 优化
- 开源 JSON 库解析性能对比( Jackson / Json.simple / Gson )
- FragmentTabHost的应用,完美解决滑动的时候,一些问题
- 如何写好一个单例,并且考虑了线程安全?
- 快速选择算法 C++实现
- Python filecmp库
- SpringMVC详细实例
- Reactor模式和Proactor模式
- C++ 内存问题
- Spark SQL来读取现有Hive中的数据
- axure原型设计之二维码扫描框
- JSP 页面传值方法总结