zoukankan      html  css  js  c++  java
  • 编程中为什么要用到单例模式?

    编程开发中为什么要用到单例模式?

    单例模式的存在,一则,解决多线程并发访问的问题。二则节约系统内存,提交系统运行的效率,提高系统性能。

    单例模式的代码:

     1 public class Printer {
     2     private static Printer printer =null;//创建一个私有的全局变量
     3     /*
     4      * 如果有多线程并发访问时,上锁,让其排队等候,一次只能一人用。
     5      */
     6     public static synchronized Printer getPrinter(){
     7         if(printer==null){//如果为空,创建本实例
     8             printer = new Printer();
     9         }
    10         return printer;
    11     }
    12     /*
    13      * 构造私有化,保证在系统的使用中,只有一个实例
    14      */
    15     private Printer(){
    16         
    17     }
    18 }
    View Code

    从代码上来分析,单例模式,首先向外提供了一个可被访问的实例化的对象,如果没有此对象时,该printer类创建一个。如果遇到多线程并发访问,加上关键字Synchronized,上锁让没有持有该对象的类处于等待状态。当前持有该printer的线程任务结束之后,处于等待中的线程才能逐个去持有该实例,去操作其方法。这样的一个过程 在编程中被称为单例模式。
    如果在系统中不使用单例模式的话,在碰到多线程访问的时候,printer就会给要请求的类,分别在内存中new出一个printer对象,让这些请求的类去做print方法。这样大量占有内存,就会导致系统运行变慢,像电脑的CPU一样,占有量极高,电脑卡死不动的感觉。因为系统的硬件设施需求变动量小,所以只能想出一个节约成本 的方法就是,单例模式,让多线程处于等待的状态,一个 一个的去解决,这样,即节约内存,提交了运行的成本。也就是单例存在的意义。

  • 相关阅读:
    找到数组中消失的所有数字-算法刷题总结
    爬楼梯-算法练习笔记
    最长公共前缀-刷题总结
    每日温度-算法详细分析
    买卖股票的最佳时机-算法详细分析
    回文数-算法详细分析
    合并两个有序链表-算法详细法分析
    最短无序连续子数组 | 算法详细分析
    整数反转-算法详细分析
    python设计模式之责任链模式
  • 原文地址:https://www.cnblogs.com/shuanlei/p/4027424.html
Copyright © 2011-2022 走看看