黑马程序员技术交流社区
标题:
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