zoukankan      html  css  js  c++  java
  • 多线程单例模式之延迟加载(懒汉模式)

    package com.wz.thread.delay;
    /**
     * 延迟加载/懒汉模式 单例设计模式
     * 使用DCL双检查锁机制,DCL是大多数多线程结合单例模式使用哪个的解决方案
     * @author Administrator
     *
     */
    public class MyObject {
        
        private volatile static MyObject myObject;
        private MyObject() {}
        public static MyObject getInstance() {
            try {
                if(myObject != null) {
                    
                }else {
                    Thread.sleep(3000);
                    synchronized (MyObject.class) {
                        if(myObject == null) {
                            myObject = new MyObject();
                        }
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return myObject;
        }

    }

    package com.wz.thread.delay;

    public class MyThread extends Thread {
        
        @Override
        public void run() {
            super.run();
            System.out.println(MyObject.getInstance().hashCode());
        }

    }

    package com.wz.thread.delay;
    /**
     * 输出的hascode值相同,说明是同一个对象
     * @author Administrator
     *
     */
    public class Run {

        public static void main(String[] args) {
            MyThread t1 = new MyThread();
            MyThread t2 = new MyThread();
            MyThread t3 = new MyThread();
            t1.start();
            t2.start();
            t3.start();
        }
    }

  • 相关阅读:
    跨域资源共享 CORS 详解
    Vue.js 与 Laravel 分离
    Laravel 5.4+Vue.js 初体验:Laravel下配置运行Vue.js
    移动端web及app设计尺寸
    另辟蹊径:vue单页面,多路由,前进刷新,后退不刷新
    vue2.0 keep-alive最佳实践
    教你用Cordova打包Vue项目
    oracle_数据处理
    oracle_集合函数
    oaracel 函数_行转列
  • 原文地址:https://www.cnblogs.com/wadmwz/p/7822323.html
Copyright © 2011-2022 走看看