如何将单例模式设计思想转化为一个长尾词?
- 内容介绍
- 文章标签
- 相关推荐
本文共计379个文字,预计阅读时间需要2分钟。
单例模式的初始化资源仅需初始化一次,实例化后即可重复利用,优势在于没有加任何锁资源共享,只需初始化一次实例即可重复使用,无需加锁执行效率高。
单例模式的设计初衷资源共享只要初始化一次实例就可以重复利用饿汉单例模式优点没有加任何锁资源共享只要初始化一次实例就可以重复利用饿汉单例模式 优点没有加任何锁执行效率高。绝对的线程安全 缺点类加载时就已经存在了占用内存空间
懒汉单例模式 简单懒汉 加锁 利用内部类实现懒汉模式利用内部类只有在外部类被加载时内部类才被加载
发令枪
CountDownLatch
package com.gupao.demo.single.serialize;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.util.concurrent.CountDownLatch;import com.gupao.demo.single.lazy.LazyTwo;public class App {public static void main(String[] args) throws IOException, ClassNotFoundException {//// Hungry instance Hungry.getInstance();// // FileOutputStream filenew FileOutputStream("o.obj");// ObjectOutputStream outOnew ObjectOutputStream(file);// outO.writeObject(instance);// // ObjectInputStream innew ObjectInputStream(new FileInputStream("o.obj"));// Hungry instance2 (Hungry) in.readObject();// // System.out.println(instanceinstance2);int count200;//发令枪CountDownLatch downnew CountDownLatch(count);for(int i0;i< count;i){new Thread(new Runnable() {Overridepublic void run() {try {//发令枪阻塞down.await();} catch (Exception e) {e.printStackTrace();}LazyTwo instance LazyTwo.getInstance();System.out.println(System.currentTimeMillis()":"instance);}}).start();//发令枪计数 count--down.countDown();}}}
本文共计379个文字,预计阅读时间需要2分钟。
单例模式的初始化资源仅需初始化一次,实例化后即可重复利用,优势在于没有加任何锁资源共享,只需初始化一次实例即可重复使用,无需加锁执行效率高。
单例模式的设计初衷资源共享只要初始化一次实例就可以重复利用饿汉单例模式优点没有加任何锁资源共享只要初始化一次实例就可以重复利用饿汉单例模式 优点没有加任何锁执行效率高。绝对的线程安全 缺点类加载时就已经存在了占用内存空间
懒汉单例模式 简单懒汉 加锁 利用内部类实现懒汉模式利用内部类只有在外部类被加载时内部类才被加载
发令枪
CountDownLatch
package com.gupao.demo.single.serialize;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.util.concurrent.CountDownLatch;import com.gupao.demo.single.lazy.LazyTwo;public class App {public static void main(String[] args) throws IOException, ClassNotFoundException {//// Hungry instance Hungry.getInstance();// // FileOutputStream filenew FileOutputStream("o.obj");// ObjectOutputStream outOnew ObjectOutputStream(file);// outO.writeObject(instance);// // ObjectInputStream innew ObjectInputStream(new FileInputStream("o.obj"));// Hungry instance2 (Hungry) in.readObject();// // System.out.println(instanceinstance2);int count200;//发令枪CountDownLatch downnew CountDownLatch(count);for(int i0;i< count;i){new Thread(new Runnable() {Overridepublic void run() {try {//发令枪阻塞down.await();} catch (Exception e) {e.printStackTrace();}LazyTwo instance LazyTwo.getInstance();System.out.println(System.currentTimeMillis()":"instance);}}).start();//发令枪计数 count--down.countDown();}}}

