黑马程序员技术交流社区
标题:
Java多线程
[打印本页]
作者:
箬竹小筑
时间:
2014-2-8 22:22
标题:
Java多线程
今天看的Java基础视频,不能明白老师最后提到的饿汉式和懒汉式的单例设计模式,请求回答这两个模式是做什么的,用于什么地方?
作者:
guhaibin
时间:
2014-2-8 22:34
单例就是一个对象或者说是有有限的对象,避免其他的程序可以过多的创建此对象,这样就可以操作特定的对象形成统一的现象。所有对象都共享同样的信息,就定义成单例模式。便于管理,安全。
饿汉式:先实例化;
懒汉式:是什么时候用到,什么时候实例化,后实例化。
作者:
↑↓ME→←
时间:
2014-2-9 09:32
经常用于只能由一个对象的类中,比如ATM机可以有很多个,但是银行只能有一个,这个银行就必须设计成单例设计模式,只能有一个对象来操作各个ATM的运行,至于这两种模式,大致差不多,不过饿汉式用的比较多,懒汉式需要涉及到线程锁定!
作者:
郭运川
时间:
2014-2-9 09:51
单例模式是为了保证只能拥有一个本类对象
例如:Runtime类中的函数只能创建一个对象
多线程下的单例
//饿汉式
class Single{
private static final Single s = new Single();
private Single(){}
public static Single getInstance(){
return s;
}}
//懒汉式
加入同步为了解决多线程安全问题。
加入双重判断是为了解决效率问题。
class Single{
private static Single s = null;
private Single(){}
public static Single getInstance(){
if(s==null){
synchronized(Single.class) {
if(s==null)
s = new Single();
}
}return s;
}}
作者:
分解式
时间:
2014-2-11 18:52
饿汉式:public class Singleton{private static Singleton singleton = new Singleton ();private Singleton (){}public Singleton getInstance(){return singletion;}懒汉式:public class Singleton{private static Singleton singleton = null;public static synchronized synchronized getInstance(){if(singleton==null){ singleton = new Singleton();return singleton 比较:饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的推荐使用第一种
作者:
戚晓永
时间:
2014-2-11 21:23
为了能够发帖,能够进黑马,积极看帖子,积极回帖子。
作者:
戚晓永
时间:
2014-2-11 21:34
这个看过,但是现在印象不深了,讲的是锁,防止多线程异常的,回去再复习一遍。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2