本帖最后由 邱俊杰 于 2012-4-23 18:00 编辑
单例有懒汉和饿汉、就顺便复习一下代码吧,- 饿汉士:不过通常考的是懒汉士
- *class Single
- *{
- * private static final Single s=new Single();
- * private Single (){}
- * public static Single gerInstance()
- * {
- * 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;
- }
- }
复制代码 |