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

机构改革 住房与城乡建设厅网站重庆市建设工程造价管理协会

机构改革 住房与城乡建设厅网站,重庆市建设工程造价管理协会,贵阳网站定制电话,郑州百度seo网站优化前言 上篇文章我们讲了wait和notify两个方法的使用.至此,多线程的一些基本操作就已经结束了,今天我们来谈谈多线程的一些简单应用场景. 单例模式 单例模式,顾名思义,只有一个实例的模式,我们有两种实现方式,分别是懒汉式和饿汉式,我们来分别给出代码. 饿汉式(此处的饿表示创建实…前言 上篇文章我们讲了wait和notify两个方法的使用.至此,多线程的一些基本操作就已经结束了,今天我们来谈谈多线程的一些简单应用场景. 单例模式 单例模式,顾名思义,只有一个实例的模式,我们有两种实现方式,分别是懒汉式和饿汉式,我们来分别给出代码. 饿汉式(此处的饿表示创建实例的迫切,所以我们定义成一个类变量即可,然后提供他的私有构造方法,提供获取实例的方法,由于是随着类的加载而加载,所以该实例是无线程安全问题的.) class singleTon{private static singleTon instance new singleTon();public static singleTon getInstance(){return instance;}private singleTon(){} } 懒汉式(需要的时候再创建,这个是在第一次使用的时候再创建实例,就有可能引发线程安全的问题,下面我给出代码) class SingleTonLazy{//引用指向唯一实例private static volatile SingleTonLazy instance null;private static final Object lock new Object();public static SingleTonLazy getInstance(){if(instance null){synchronized (lock){if(instance null){instance new SingleTonLazy();}}}return instance;}private SingleTonLazy(){} } 你可能会想,这里为啥判断了两次instance不为空,并且又加了一个锁呢?? 1.首先,内层if是判断是否要创建instance对象 2.加锁的原因是在多线程的情况下,可能cpu调度到线程1后执行了一个判断,就去调度到线程2了,然后再次调度到线程1时,又创建了一个实例,此时这个锁是为了帮助判空创建对象的操作保证原子性的 3.最后一个if其实是为了不让每次都持有和释放锁,只有第一次持有和释放锁,来降低锁的消耗 阻塞队列 下面我们介绍一下阻塞队列,基于这个就构成了当前经常使用的 - 消息队列 其实在日常生活中,它的使用很多,比如举例如下 淘宝等商城软件,在首页要获取到用户信息和商品信息 这样假设用户信息服务器挂了,可能导致整个服务挂了 此时我们引入消息队列 让请求接收服务器直接将请求放到信息队列中,让其他的服务器依次来取即可 好处 1.降低了服务器之间的耦合度,此时如果添加服务器可以直接添加,一个服务器宕机对其他的服务影响小 2.削峰填谷 请求多的时候,可以先存放在消息队列中慢慢处理 下面我们来简单实现一个简易消息队列(基于循环队列) class MyBlockingQueue{private String[] elems null;private int head 0;private int tail 0;private int size 0;private final Object lock new Object();public MyBlockingQueue(int capacity) {elems new String[capacity];}public void put(String elem) throws InterruptedException {synchronized (lock){while (size elems.length){//满了需要阻塞lock.wait();}//加元素elems[tail] elem;tail;if(tailelems.length){tail 0;}//使用elem % elems.length也行size;lock.notify();}}public String take() throws InterruptedException {synchronized (lock){while(size 0){lock.wait();//阻塞}String elem elems[head];head;if(head elems.length){head 0;}size--;lock.notify();return elem;}} }
http://www.zqtcl.cn/news/684929/

相关文章:

  • 北京好的做网站的公司东莞专业做淘宝网站
  • 网站结构怎么优化wordpress文章列表添加字段
  • 网站建设框架图长沙官网seo技术厂家
  • 电子商务网站建设主管的策划案html个人网站设计模板
  • 网站首页的head标签内做网站要学的教程
  • 网页设计教学网站江西省建设监督网站
  • 网站建设与发布需要什么提供网站制作公司哪家好
  • 西宁市城市道路建设规划网站探测器 东莞网站建设
  • 旅游村庄网站建设方案小程序制作价格
  • 网站地图制作软件机械加工网免费铺货
  • 网站上线有什么线上活动可以做龙华建网站多少钱
  • 门户网站系统开发建设电脑优化
  • 公司建网站多少钱一个月服务佳的广州网站建设
  • 怎么创建网站建设徐州网站建设要多少钱
  • 微网站功能列表菜市场做建筑设计图库的网站设计
  • 制作网站支付方式定制网站开发哪里好
  • 常州网络网站建设行情软件app网站大全下载
  • 出台网站集约化建设通知彩票网站开发的
  • 怎样创建个人的网站怎么学做网站
  • 小江高端网站建设网站建设中可能升级
  • 网站建设的原则有哪些内容wordpress的底部版权
  • 一个网站建立团队大概要多少钱大连专业网站建设
  • 宁波网站公司相册插件wordpress
  • 科技网站域名大型网站开发团队
  • 温岭建设规划局网站注册新公司网上怎么核名
  • dede网站移动端怎么做golang 网站开发 开源
  • 织梦网站导航固定沈阳男科医院在线咨询免费
  • 四川华鸿建设有限公司网站网站建设需求文案
  • 汕头东莞网站建设怎么制作微信小程序app
  • 网站建设预算方案模板怎么做网络推广网站