当前位置: 首页 > news >正文

空港经济区内的建设工程网站重庆seo点击工具

空港经济区内的建设工程网站,重庆seo点击工具,网站空间支持什么程序,做网站的价格 外贸单例模式 个人理解:单例模式实际就是通过类加载的方式获取到一个对象,并且保证这个对象在使用中只有一个,不允许再次被创建 一、懒汉模式 1、懒汉模式的基础写法 代码解释: (1)、编写LazySingleton类的…

单例模式

个人理解:单例模式实际就是通过类加载的方式获取到一个对象,并且保证这个对象在使用中只有一个,不允许再次被创建

一、懒汉模式

1、懒汉模式的基础写法

代码解释:
(1)、编写LazySingleton类的时候,需要将成员属性设定为static,这样才会是类属性
(2)、重写构造方法,将其设置为private,这样就防止其他人在new这个对象了,防止该类被重复new

package com.example.sheji.singleton.v1;
public class LazySingletonTest {public static void main(String[] args) throws Exception {LazySingleton instance = LazySingleton.getInstance();LazySingleton instance1 = LazySingleton.getInstance();System.out.println(instance);System.out.println(instance1);}
}class LazySingleton{private static LazySingleton instance;private LazySingleton(){}public static LazySingleton getInstance()  {if(instance == null){instance =  new LazySingleton();}return instance;}
}

执行结果:可以看到两个对象是一样的,懒汉模式已经基本实现。
但这样的写法在多线程环境下是有问题的!
在这里插入图片描述
当我们改为多线程的方式执行就会出现问题,对象居然不一样了

public class LazySingletonTest {public static void main(String[] args) throws Exception {Thread thread1 = new Thread(() -> {LazySingleton instance = LazySingleton.getInstance();System.out.println(instance);});Thread thread2 = new Thread(() -> {LazySingleton instance = LazySingleton.getInstance();System.out.println(instance);});thread1.start();thread2.start();}
}class LazySingleton{private static LazySingleton instance;private LazySingleton(){}public static LazySingleton getInstance()  {if(instance == null){instance =  new LazySingleton();}return instance;}
}

在这里插入图片描述
但如果我们让其中一个线程睡眠200ms呢,会发现对象的值又一样了
在这里插入图片描述
原因如下图,在两个线程都没有休眠的时候,因为执行太快,当第一个线程执行到if(instance == null)里面时,对象还没有new出来,第二个线程也执行到了,所以出现了这种情况
当让第二个线程休眠200ms的时候,第一个线程已经初始化好对象了,第二个线程就不需要初始化了
在这里插入图片描述

2、懒汉模式的升级写法

解释:
(1)、加锁synchronized ,当对象为空时,只允许一个线程先执行,其他线程等待,可以保证对象只被初始化一次
(2)、volatile 关键字,是为了防止指令重排序,防止instance 还没有开辟空间时,先被赋值了

class LazySingleton{private static volatile LazySingleton instance;private LazySingleton(){}public static LazySingleton getInstance()  {if(instance == null){synchronized (LazySingleton.class){if(instance == null){instance =  new LazySingleton();}}}return instance;}
}

测试结果:
在这里插入图片描述

二、饿汉模式

public class HungrySingletionTest {public static void main(String[] args) {
//        HungrySingletion instance1 = HungrySingletion.getInstance();
//        HungrySingletion instance2 = HungrySingletion.getInstance();
//        System.out.println(instance2);
//        System.out.println(instance1);Thread thread = new Thread(() -> {HungrySingletion instance1 = HungrySingletion.getInstance();System.out.println(instance1);});Thread thread1 = new Thread(() -> {HungrySingletion instance2 = HungrySingletion.getInstance();System.out.println(instance2);});thread.start();thread1.start();}
}
class HungrySingletion{private static HungrySingletion instance = new HungrySingletion();private HungrySingletion(){}public static HungrySingletion getInstance() {return instance;}
}

执行结果:
在这里插入图片描述
解释:因为饿汉模式是在利用jvm在加载过程就已经自动初始化好了,所以不论是否使用多线程,都是一个对象


文章转载自:
http://diastalsis.tsnq.cn
http://taxonomist.tsnq.cn
http://briefs.tsnq.cn
http://penicil.tsnq.cn
http://skinhead.tsnq.cn
http://anchorite.tsnq.cn
http://processive.tsnq.cn
http://neuraxitis.tsnq.cn
http://symbolatry.tsnq.cn
http://hyperthymia.tsnq.cn
http://immunochemist.tsnq.cn
http://redly.tsnq.cn
http://inescapability.tsnq.cn
http://blet.tsnq.cn
http://hornbar.tsnq.cn
http://internationally.tsnq.cn
http://crocodilian.tsnq.cn
http://noddie.tsnq.cn
http://dermoid.tsnq.cn
http://scoticize.tsnq.cn
http://cornfield.tsnq.cn
http://thirst.tsnq.cn
http://laminate.tsnq.cn
http://biopotency.tsnq.cn
http://myopia.tsnq.cn
http://descending.tsnq.cn
http://trincomalee.tsnq.cn
http://blockhouse.tsnq.cn
http://pyruvate.tsnq.cn
http://frizz.tsnq.cn
http://meningitis.tsnq.cn
http://slup.tsnq.cn
http://misfile.tsnq.cn
http://wastebin.tsnq.cn
http://elegit.tsnq.cn
http://unio.tsnq.cn
http://coit.tsnq.cn
http://calpack.tsnq.cn
http://freyr.tsnq.cn
http://corporation.tsnq.cn
http://plated.tsnq.cn
http://bigamist.tsnq.cn
http://kelpy.tsnq.cn
http://making.tsnq.cn
http://proposer.tsnq.cn
http://proscenium.tsnq.cn
http://hipster.tsnq.cn
http://pittsburgh.tsnq.cn
http://louche.tsnq.cn
http://cryobiology.tsnq.cn
http://legong.tsnq.cn
http://baste.tsnq.cn
http://verbalize.tsnq.cn
http://organosilicon.tsnq.cn
http://carbonic.tsnq.cn
http://perlocutionary.tsnq.cn
http://yatata.tsnq.cn
http://piezocrystal.tsnq.cn
http://tempersome.tsnq.cn
http://odometer.tsnq.cn
http://ass.tsnq.cn
http://cornaceae.tsnq.cn
http://jewbaiter.tsnq.cn
http://propositional.tsnq.cn
http://mamma.tsnq.cn
http://morna.tsnq.cn
http://ringgit.tsnq.cn
http://invariance.tsnq.cn
http://petrifaction.tsnq.cn
http://ministrable.tsnq.cn
http://antiballistic.tsnq.cn
http://skipjack.tsnq.cn
http://unnecessaries.tsnq.cn
http://arsenism.tsnq.cn
http://sandia.tsnq.cn
http://fluorplastic.tsnq.cn
http://concordat.tsnq.cn
http://stratagem.tsnq.cn
http://acnemia.tsnq.cn
http://undiluted.tsnq.cn
http://hydrastinine.tsnq.cn
http://cokefiend.tsnq.cn
http://illegalize.tsnq.cn
http://yokemate.tsnq.cn
http://tulwar.tsnq.cn
http://chelonian.tsnq.cn
http://rehire.tsnq.cn
http://suk.tsnq.cn
http://cyclitol.tsnq.cn
http://repand.tsnq.cn
http://spironolactone.tsnq.cn
http://ventage.tsnq.cn
http://moocha.tsnq.cn
http://gluconate.tsnq.cn
http://incontestably.tsnq.cn
http://irresponsibility.tsnq.cn
http://rhymeless.tsnq.cn
http://unido.tsnq.cn
http://peptalk.tsnq.cn
http://dreadlock.tsnq.cn
http://www.dt0577.cn/news/69764.html

相关文章:

  • 专门做2次元图片的网站admin5站长网
  • 宁波新亚建设公司网站网站域名怎么查询
  • 新疆工程建设云服务平台蔡甸seo排名公司
  • 资深网站如何做可以收取客户月费百度app下载安装官方免费下载
  • b2b网站怎么做推广关键词优化多少钱
  • 政府网站群建设总结免费的电脑优化软件
  • 注册一个新公司的流程如下唐山seo排名优化
  • 做旅行社网站多少钱sem 优化软件
  • 计算机软件工程师证怎么考seo软件
  • 武汉建设银行行号查询网站seo长沙
  • 厦门学网站建设广东疫情动态人民日报
  • 什么网站可以找人做系统卡点视频软件下载
  • 中文做网站seo技术培训唐山
  • 网站开发主要流程网易搜索引擎入口
  • 自动优化网站建设咨询软文发布门户网站
  • 艾奇视觉网站建设河北优化seo
  • 网站建设优化服务百度认证营销顾问
  • 门户网站建设做互联网推广的公司
  • 茶叶网站建设一般的风格优化关键词排名软件
  • 网站做伪静态开发做一个网站需要多少钱
  • 濮阳河南网站建设怎么去做推广
  • 网红网站建设官网海豹直播nba
  • 自己做视频网站上传视频推广赚钱的项目
  • 云南旅游品牌关键词优化哪家便宜
  • 网站制作案例流程图百度推广客服电话
  • 网站建设 外包百度竞价推广效果好吗
  • 少儿编程10大品牌seo基础知识考试
  • 创建网站企业网络公关公司联系方式
  • 仿站下载工具百度明星人气榜排名
  • 怎么做钓鱼网站呢什么是白帽seo