单例模式中的线程安全问题
2018-08-16 15:43
127 查看
[code]package com.qianfeng.test; public class Demo { public static void main(String[] args) { Test test = new Test(); Thread thread = new Thread(test); thread.start(); } } //单例模式三要素: // 1.私有的构造方法 // 2.指向自己实例的私有静态引用 // 3.以自己的实例为返回值的静态的公有的方法 // 饿汉式 class Singleton { private static Singleton singleton = new Singleton();// 指向自己实例的私有静态引用 private Singleton() { }// 私有的构造方法 public static Singleton getSingleton() {// 以自己实例为返回值的静态的公有的方法 return singleton;//这里只有一行代码,不会发生线程安全问题 } } // 懒汉式 class Singleton1 { private static Singleton1 singleton = null; private Singleton1() { }// 私有的构造方法 public static Singleton1 getSingleton() { if (singleton == null) {//目的:尽量减少线程安全代码的判断次数 synchronized (Singleton1.class) { // synchronized (Object.class) if (singleton == null) { singleton = new Singleton1(); } } } return singleton; } } class Test implements Runnable{ public void run(){ Singleton singleton = Singleton.getSingleton(); } }
阅读更多
相关文章推荐
- 单例模式中的线程安全问题
- 单例模式涉及到的线程安全问题
- Android开发设计模式之——单例模式关于线程不安全问题处理
- Java 单例模式线程安全问题
- 解决多线程单例模式的线程不安全问题
- 设计模式——单例模式(Java)——考虑多线程环境下的线程安全问题
- 初学设计模式(3)-----单例模式(在研究单例的线程安全问题时,发现一篇很全面的文章,直接转了)
- 单例模式与线程安全问题浅析
- 黑马程序员之线程安全问题与单例模式
- 关于单例模式线程安全问题
- JAVA_单例模式懒汉式的线程安全问题
- 单例模式与线程安全问题浅析
- 单例模式与线程安全问题浅析
- 关于Android的View线程安全的问题
- hibernate中session的线程安全问题
- Debug 模式 和 Release 模式下,一个线程在"编译"上引发的问题
- 详解SimpleDateFormat的线程安全问题与解决方案
- 关于java线程安全问题
- 从volatile说到i++的线程安全问题
- SimpleDateFormat的线程安全问题