java 多线程的单例模式,Java多线程中的单例模式两种实现方式
Java多線程中的單例模式
一、在多線程環(huán)境下創(chuàng)建單例
方式一:
package com.ietree.multithread.sync;
public class Singletion {
private static class InnerSingletion {
private static Singletion single = new Singletion();
}
public static Singletion getInstance() {
return InnerSingletion.single;
}
}
方式二:
package com.ietree.multithread.sync;
public class DubbleSingleton {
private static DubbleSingleton ds;
public static DubbleSingleton getDs() {
if (ds == null) {
try {
// 模擬初始化對象的準備時間...
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
synchronized (DubbleSingleton.class) {
if (ds == null) { // 這個判斷很重要,如果沒有那將不是單例,而是多例
ds = new DubbleSingleton();
}
}
}
return ds;
}
public static void main(String[] args) {
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
System.out.println(DubbleSingleton.getDs().hashCode());
}
}, "t1");
Thread t2 = new Thread(new Runnable() {
@Override
public void run() {
System.out.println(DubbleSingleton.getDs().hashCode());
}
}, "t2");
Thread t3 = new Thread(new Runnable() {
@Override
public void run() {
System.out.println(DubbleSingleton.getDs().hashCode());
}
}, "t3");
t1.start();
t2.start();
t3.start();
}
}
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
總結(jié)
以上是生活随笔為你收集整理的java 多线程的单例模式,Java多线程中的单例模式两种实现方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 监控电脑服务器配置(监控电脑服务器配置参
- 下一篇: java int 传引用吗_Java的参