zoukankan      html  css  js  c++  java
  • 2019.4.11

    单例模式:

      1、懒汉式

    package com.danli;
    /**
     * 懒汉式
     * @author Administrator
     *
     */
    public class User {
    	private static User user = null;
    	
    	private User() {}
    	
    	synchronized public static User getUser() {
    		if(user==null) {
    			user = new User();
    		}
    		return user;
    	}
    }
    

      

    package com.danli;
    /**
     * 线程 类
     * @author Administrator
     *
     */
    public class MyThread implements Runnable{
    
    	@Override
    	public void run() {
    		for(int i = 0;i<10;i++) {
    			User user = User.getUser();
    			System.out.println(user);
    		}
    	}
    	
    }
    

      

    package com.danli;
    /**
     * 测试类
     * @author Administrator
     *
     */
    public class Main {
    	public static void main(String[] args) {
    		MyThread mt = new MyThread();
    		Thread t1 = new Thread(mt);
    		Thread t2 = new Thread(mt);
    		Thread t3 = new Thread(mt);
    		Thread t4 = new Thread(mt);
    		
    		t1.start();
    		t2.start();
    		t3.start();
    		t4.start();
    		
    	}
    }
    

      测试示例:

      2、饿汉式

    package com.danli;
    /**
     * 饿汉式
     * @author Administrator
     *
     */
    public class User2 {
    	private static final User2 user = new User2();
    	
    	private User2() {}
    	
    	public static User2 getUser() {
    		return user;
    	}
    }
    

      

    package com.danli;
    /**
     * 线程 类
     * @author Administrator
     *
     */
    public class MyThread implements Runnable{
    
    	@Override
    	public void run() {
    		for(int i = 0;i<10;i++) {
    			User2 user = User2.getUser();
    			System.out.println(user);
    		}
    	}
    }
    

      

    package com.danli;
    /**
     * 测试类
     * @author Administrator
     *
     */
    public class Main {
    	public static void main(String[] args) {
    		MyThread mt = new MyThread();
    		Thread t1 = new Thread(mt);
    		Thread t2 = new Thread(mt);
    		Thread t3 = new Thread(mt);
    		Thread t4 = new Thread(mt);
    		
    		t1.start();
    		t2.start();
    		t3.start();
    		t4.start();
    		
    	}
    }
    

      结果示例:

      3、枚举单例:

    package com.enumsingle;
    /**
     * 枚举单例
     * @author Administrator
     *
     */
    public class Single{
    	//私有化无参构造
        private Single(){}
        //创建静态获取实例方法getInstance()
        public static Single getInstance(){
            return EnumSingle.INSTANCE.getInstance();
        }
        
        private static enum EnumSingle{
            INSTANCE;
            //私有化实例对象
            private Single single;
            //通过枚举类无参构造方法创建对象
            private EnumSingle(){
                single = new Single();
            }
            
            public Single getInstance(){
                return single;
            }
        }
    }
    

      

    package com.enumsingle;
    /**
     * 线程 类
     * @author Administrator
     *
     */
    public class MyThread implements Runnable{
    
    	@Override
    	public void run() {
    		for(int i = 0;i<10;i++) {
    			Single es = Single.getInstance();
    			System.out.println(es);
    		}
    	}
    }
    
    package com.enumsingle;
    /**
     * 测试类
     * @author Administrator
     *
     */
    public class Main {
    	public static void main(String[] args) {
    		MyThread mt = new MyThread();
    		Thread t1 = new Thread(mt);
    		Thread t2 = new Thread(mt);
    		Thread t3 = new Thread(mt);
    		Thread t4 = new Thread(mt);
    		
    		t1.start();
    		t2.start();
    		t3.start();
    		t4.start();
    		
    	}
    }
    

      结果示例

  • 相关阅读:
    夺命雷公狗TP3.2.3商城7-----管理员的修改
    夺命雷公狗TP3.2.3商城6-----管理员的删除
    夺命雷公狗TP3.2.3商城5-----管理员的列表页和分页
    夺命雷公狗TP3.2.3商城4-----管理员的创建
    夺命雷公狗TP3.2.3商城3-----数据库的创建以及连接
    夺命雷公狗TP3.2.3商城2-----后台模版引入和后台控制器的创建
    夺命雷公狗TP3.2.3商城的搭建开篇1
    夺命雷公狗----网页版百度地图使用最新方法
    夺命雷公狗---linux NO:44 linux下php扩展的编译
    夺命雷公狗---linux NO:43 linux下编译apache整合php
  • 原文地址:https://www.cnblogs.com/chenxj/p/10692433.html
Copyright © 2011-2022 走看看