首页 > 代码库 > 编程中为什么要用到单例模式?
编程中为什么要用到单例模式?
编程开发中为什么要用到单例模式?
单例模式的存在,一则,解决多线程并发访问的问题。二则节约系统内存,提交系统运行的效率,提高系统性能。
单例模式的代码:
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 }
从代码上来分析,单例模式,首先向外提供了一个可被访问的实例化的对象,如果没有此对象时,该printer类创建一个。如果遇到多线程并发访问,加上关键字Synchronized,上锁让没有持有该对象的类处于等待状态。当前持有该printer的线程任务结束之后,处于等待中的线程才能逐个去持有该实例,去操作其方法。这样的一个过程 在编程中被称为单例模式。
如果在系统中不使用单例模式的话,在碰到多线程访问的时候,printer就会给要请求的类,分别在内存中new出一个printer对象,让这些请求的类去做print方法。这样大量占有内存,就会导致系统运行变慢,像电脑的CPU一样,占有量极高,电脑卡死不动的感觉。因为系统的硬件设施需求变动量小,所以只能想出一个节约成本 的方法就是,单例模式,让多线程处于等待的状态,一个 一个的去解决,这样,即节约内存,提交了运行的成本。也就是单例存在的意义。
编程中为什么要用到单例模式?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。