饿汉单例模式实例——取快递

package single;
import java.util.*;
public class CourierThread extends Thread{

    String couriers[]={"顺丰快递","申通快递","圆通快递","韵达快递","天天快递"};
    String threadName=null;
    public CourierThread(String name) {
        // TODO Auto-generated constructor stub
        threadName=name;
    }
    public void run()
    {
        Person person=Person.getInstance();
        Random random =new Random();
        for(int i=0;i<5;i++)
        {
            System.out.println(threadName+":你好,我是【"+couriers[random.nextInt(couriers.length)]+"】有你快递,请尽快来取快递!");
            System.out.println("回答"+threadName+":\t"+person.getAnser());
            try
            {
                this.sleep(1000);
                
            }catch(Exception e)
            {
                System.out.println(e.getMessage());
            }
        }
    }

}
package single;
//饿汉单例模式
public class Person {
    private static Person person=new Person();
    private int num;
    private Person()
    {
        
    }
    public static Person getInstance()
    {
        return person;
    }
    public synchronized String getAnser()
    {
        return "我是XXX,请稍等马上来!这是第"+(++num)+"个快递!";
    }

}



package single;

public class Singleton {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        CourierThread courier1=new CourierThread("线程1");
        CourierThread courier2=new CourierThread("线程2");
        courier1.start();
        courier2.start();
    }

}
 
  
 

猜你喜欢

转载自www.cnblogs.com/liao-pxsoftware15/p/8975892.html