package com.lfy.SingletonMode; /** * @author lfy * @since 2018/06/03 * @see 单例模式除了2-5种实现方式外,还可以通过:枚举类型 或静态内部类来实现单例模式,留到后续学习 * * */ public class TestWithMultiThreading extends Thread { @Override public void run(){ try{ //测试SingletonMode2.java在多线程下是线程不安全的 // System.out.println(SingletonMode2.getInstance()); //测试SingletonMode3.java在多线程下是线程安全的 // System.out.println(SingletonMode3.getInstance()); //测试SingletonMode4.java在多线程下是线程安全的 // System.out.println(SingletonMode4.getInstance()); //测试SingletonMode5.java在多线程下是线程安全的,且完美解决了SingletonMode4.java多线程修改内存与读取不一致问题 System.out.println(SingletonMode5.getInstance()); }catch(Exception e){ e.printStackTrace(); } } public static void main(String[] args) { TestWithMultiThreading t1=new TestWithMultiThreading(); t1.start(); TestWithMultiThreading t2=new TestWithMultiThreading(); t2.start(); } }