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

网站无域名注册人id做网站 带宽 多少钱

网站无域名注册人id,做网站 带宽 多少钱,软件开发合同模板免费,广州工程建设网站单例模式分为懒汉式和饿汉式两种 在有些系统中,为了节省内存资源、保证数据内容的一致性,对某些类要求只能创建一个实例,这就是所谓的单例模式. 例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理…

单例模式分为懒汉式和饿汉式两种

       在有些系统中,为了节省内存资源、保证数据内容的一致性,对某些类要求只能创建一个实例,这就是所谓的单例模式. 例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。

单例模式有 3 个特点:

1. 单例类只有一个实例对象;
2. 该单例对象必须由单例类自行创建;
3. 单例类对外提供一个访问该单例的全局访问点;

懒汉式单例模式:

在类加载时便进行单例对象的创建,不会因为线程产生不安全原因

public class Wonder {public static Wonder wonder=new Wonder();private Wonder(){}public static Wonder getWonder(){return wonder;}
}

饿汉式单例模式:

在使用访问方法时才进行单例对象进行生成操作,在多线程的情况下有问题


public class Wonder {public static Wonder wonder;private Wonder(){}public static Wonder getWonder(){if(wonder==null){try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}wonder=new Wonder();}return wonder;}public static void main(String[] args) {for (int i = 0; i < 10; i++) {new Thread(()->{System.out.println(Wonder.getWonder());}).start();}}
}

所以需要处理线程安全问题,可以给访问方法添加锁


public class Wonder {public static Wonder wonder;private Wonder(){}public static synchronized Wonder getWonder(){if(wonder==null){try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}wonder=new Wonder();}return wonder;}public static void main(String[] args) {for (int i = 0; i < 10; i++) {new Thread(()->{System.out.println(Wonder.getWonder());}).start();}}
}

但是虽然给方法加锁以后,线程安全解决了,但是效率下去了 ,所以我们可以给代码块加锁,并使用双重判断,再给单例对象使用volatile关键字,防止指令重排生成半成品对象

//懒汉模式
public class Wonder1 {public static volatile Wonder1 wonder1;   //防止指令重排出现半成品对象private  Wonder1(){};public static Wonder1 getWonder1(){if(wonder1==null){try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}//防止多个线程进入到此等待锁释放synchronized (Wonder1.class){//当上一层的线程获得锁后再次判断是否已经初始化过if(wonder1==null){wonder1=new Wonder1();}}}return wonder1;}public static void main(String[] args) {for (int i = 0; i < 10; i++) {new Thread(()->{System.out.println(Wonder1.getWonder1());}).start();}}
}

JAVA 中的例子:

Runtime 类
Jdk 中的源码 Runtime 类就是一个单例类,利用 Runtime 类可以启动新的进程或进行相关运行时环境的操作。比如,取得内存空间以及释放垃圾空间。 Runtime 类属于典型的单例设计。
http://www.yayakq.cn/news/906056/

相关文章:

  • 网站遇到攻击时应该怎么做广州广告公司前100名排行
  • 企业网站开发报价长虹电视网站建设中
  • 网站备案通过之后企业怎么在网站上做宣传
  • 三里屯做网站的公司企业seo解决方案
  • 网站建设汽车后市场解决方案可以做宣传的网站
  • 没有备案的交易网站两学一做电脑答题网站
  • 网站后台管理系统源代码服务中心网站建设意见
  • 中国工程建设交易信息网站自己搞网站做外贸
  • 做网站的数据库西北电力建设甘肃工程公司网站
  • 网站安全建设申请怎么做属于自己的领券网站
  • 零基础搭建网站大连网站建设1000元
  • 峨眉山移动网站建设如何编写网站后台程序
  • 郑东新区网站建设做网站有哪些流程
  • 旅游电子商务网站开发制作网站怎么建立会员
  • 任丘网站优化做设计需要知道的几个网站
  • 山东省建设管理信息网站个人网站网站建设方案书
  • 网站后期推广是谁来做施工企业市场调查目的与主题主要有()。
  • 百度收录率高的网站酷我音乐网站架构
  • 网站推广基本方法是网站建设制作经验足
  • ac域名网站网站空间控制面板
  • 如何用家庭电脑做网站展览展示设计公司排名
  • 外国网站的浏览器产品怎样推广有效
  • mooc网站开发流程图高清免费观看电视网站
  • 做好网站功能性建设工作怎么免费建立自己的网站步骤
  • 设计国外网站有哪些制作精美网站建设服务周到
  • 江苏建设监理网站外包岗位
  • 中建西部建设网站网络营销渠道的概念
  • 格兰仕网站开发方案企业法治建设工作计划
  • 做网站的 简历锡林郭勒盟建设工程管理网站
  • 新手如何建设网站wordpress 4.9摘要