黑马程序员技术交流社区

标题: Java演练(11) : 多线程-单例设计模式-懒汉式 [打印本页]

作者: hoshan1    时间: 2015-11-14 11:42
标题: Java演练(11) : 多线程-单例设计模式-懒汉式
演练代码如下:
//定义了Apple类实现Runnable接口
class Apple implements Runnable
{
        private static Apple s = null;
        private Apple(){}
        private int apple=100;
        //单例设计模式:懒汉式定义方法
        public static  Apple getInstance()
        {
                if(s==null)
                {
                        //定义同步代码块,避免了多线程重复判断锁
                        synchronized(Apple.class)
                        {
                                if(s==null)
                                        s = new Apple();
                        }
                }
                return s;
        }
        //复写run方法
        public void run()
        {
                for(int i=1;i<=50;i++)
                {
                        //同步代码块
                        synchronized(this)
                        {
                                //输出结果
                                System.out.println(Thread.currentThread().getName()+"吃了第"+(apple--)+"个苹果");
                        }
                }
        }
}
public class Test
{
        public static void main(String[] args)
        {
                //创建两个引用
                Apple s1=Apple.getInstance();
                Apple s2=Apple.getInstance();
                //开启两个线程
                new Thread(s1,"张三").start();
                new Thread(s2,"李四").start();
        }
}
“懒汉式”与“饿汉式”的区别,在建立单例对象的时间的不同。“懒汉式”是在你真正用的时候才去建这个单例对象。实际开发中懒汉式一般用的比较少。

作者: 路人_WsL2I    时间: 2015-11-14 11:50
“懒汉式”与“饿汉式”这不真的不错,毕老师也说过。这个面试开发都很有用。收藏了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2