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

网站建设以及运营方面学校网站设计理念

网站建设以及运营方面,学校网站设计理念,移动商城积分和积分区别,海口市住房和城乡建设局网站目录 一、说明二、读读不互斥2.1 代码示例2.2 截图示例 三、读写互斥3.1 代码示例3.2 截图示例 四、写写互斥4.1 代码示例4.2 截图示例 五、注意事项5.2.1 代码示例5.2.2 截图示例 一、说明 1.当读操作远远高于写操作时#xff0c;使用读写锁让读读可以并发#xff0c;来提高… 目录 一、说明二、读读不互斥2.1 代码示例2.2 截图示例 三、读写互斥3.1 代码示例3.2 截图示例 四、写写互斥4.1 代码示例4.2 截图示例 五、注意事项5.2.1 代码示例5.2.2 截图示例 一、说明 1.当读操作远远高于写操作时使用读写锁让读读可以并发来提高性能 2.类似于数据库中的select … from … lock in share mode 3.提供一个数据容器类内部分别使用读锁保护数据的read()方法写锁保护数据的write()方法 二、读读不互斥 2.1 代码示例 package com.learning;import lombok.extern.slf4j.Slf4j;import java.util.concurrent.locks.ReentrantReadWriteLock;Slf4j public class ReadWriteLockLearning {private Object data;private ReentrantReadWriteLock reentrantReadWriteLock new ReentrantReadWriteLock();private ReentrantReadWriteLock.ReadLock readLock reentrantReadWriteLock.readLock();private ReentrantReadWriteLock.WriteLock writeLock reentrantReadWriteLock.writeLock();public Object read(){log.debug(获取读锁);readLock.lock();try {log.debug(读取);try {Thread.sleep(1000);}catch(Exception e){e.printStackTrace();}return data;}finally {log.debug(释放读锁);readLock.unlock();}}public void write(){log.debug(获取写锁);writeLock.lock();try{log.debug(写入);}finally {log.debug(释放写锁);writeLock.unlock();}}public static void main(String[] args) {ReadWriteLockLearning readWriteLockLearning new ReadWriteLockLearning();new Thread(()-{readWriteLockLearning.read();}, t1).start();new Thread(()-{readWriteLockLearning.read();}, t2).start();} } 2.2 截图示例 三、读写互斥 3.1 代码示例 package com.learning;import lombok.extern.slf4j.Slf4j;import java.util.concurrent.locks.ReentrantReadWriteLock;Slf4j public class ReadWriteLockLearning {private Object data;private ReentrantReadWriteLock reentrantReadWriteLock new ReentrantReadWriteLock();private ReentrantReadWriteLock.ReadLock readLock reentrantReadWriteLock.readLock();private ReentrantReadWriteLock.WriteLock writeLock reentrantReadWriteLock.writeLock();public Object read(){log.debug(获取读锁);readLock.lock();try {log.debug(读取);return data;}finally {log.debug(释放读锁);readLock.unlock();}}public void write(){log.debug(获取写锁);writeLock.lock();try{log.debug(写入);try {Thread.sleep(1000);}catch(Exception e){e.printStackTrace();}}finally {log.debug(释放写锁);writeLock.unlock();}}public static void main(String[] args) {ReadWriteLockLearning readWriteLockLearning new ReadWriteLockLearning();new Thread(()-{readWriteLockLearning.read();}, t1).start();try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}new Thread(()-{readWriteLockLearning.write();}, t2).start();} } 3.2 截图示例 四、写写互斥 4.1 代码示例 package com.learning;import lombok.extern.slf4j.Slf4j;import java.util.concurrent.locks.ReentrantReadWriteLock;Slf4j public class ReadWriteLockLearning {private Object data;private ReentrantReadWriteLock reentrantReadWriteLock new ReentrantReadWriteLock();private ReentrantReadWriteLock.ReadLock readLock reentrantReadWriteLock.readLock();private ReentrantReadWriteLock.WriteLock writeLock reentrantReadWriteLock.writeLock();public Object read(){log.debug(获取读锁);readLock.lock();try {log.debug(读取);return data;}finally {log.debug(释放读锁);readLock.unlock();}}public void write(){log.debug(获取写锁);writeLock.lock();try{log.debug(写入);try {Thread.sleep(1000);}catch(Exception e){e.printStackTrace();}}finally {log.debug(释放写锁);writeLock.unlock();}}public static void main(String[] args) {ReadWriteLockLearning readWriteLockLearning new ReadWriteLockLearning();new Thread(()-{readWriteLockLearning.write();}, t1).start();try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}new Thread(()-{readWriteLockLearning.write();}, t2).start();} } 4.2 截图示例 五、注意事项 1.读锁不支持条件变量2.不支持重入时升级持有读锁的情况下去获取写锁会导致获取写锁永久等待 5.2.1 代码示例 package com.learning;import lombok.extern.slf4j.Slf4j;import java.util.concurrent.locks.ReentrantReadWriteLock;Slf4j public class ReadWriteLockLearning2 {private Object data;private ReentrantReadWriteLock reentrantReadWriteLock new ReentrantReadWriteLock();private ReentrantReadWriteLock.ReadLock readLock reentrantReadWriteLock.readLock();private ReentrantReadWriteLock.WriteLock writeLock reentrantReadWriteLock.writeLock();public void readWrite(){log.debug(获取读锁);readLock.lock();try {try{log.debug(获取写锁);writeLock.lock();}finally {log.debug(释放写锁);writeLock.unlock();}}finally {log.debug(释放读锁);readLock.unlock();}}public static void main(String[] args) {ReadWriteLockLearning2 readWriteLockLearning new ReadWriteLockLearning2();readWriteLockLearning.readWrite();} } 5.2.2 截图示例 3.支持重入时降级持有写锁的情况下去获取读锁
http://www.w-s-a.com/news/852250/

相关文章:

  • 制作一个门户网站需要多少钱营销型网站特征
  • 手机网站 多html中国建设银行网站包头分行
  • 哪个网站做免费广告好招牌图片效果图设计制作
  • 网站建设优化服务机构苏州市做网站
  • 网站如何优化流程企业网站管理系统视频教程
  • 我想克隆个网站 怎么做贵州住房和城乡建设厅官网
  • 网站建设项目前景上海今天新闻综合频道
  • 做网站推销的如何谈客户wordpress怎么做商城
  • 摄影素材库网站服装页面设计的网站
  • 如何用国外网站做头条做个游戏app的费用大概多少
  • 网站 形象入口页福州网站建设网络公司排名
  • 免费下载教学设计的网站送网站建设管理信息内容审核制度
  • 外贸专业网站的公司百度旗下13个app
  • 物理组简介 网站建设高师院校语言类课程体系改革与建设 教学成果奖申报网站
  • 爱网站无法登录怎么回事手表网
  • 网站建设公司现在还挣钱吗山西手动网站建设推荐平台
  • 重庆建设工程交易信息网站网站制作公司起名
  • 东莞寮步做网站的有吗企业宣传册制作
  • 做网站的软件是哪个上蔡做网站
  • 前后端分离实现网站开发紧急通知网页升级
  • 河北专业网站建设公司推荐佛山小程序开发平台
  • 网站开发强制开启浏览器极速模式建设网站有什么风险
  • 360全景网站建设常州专业网站建设公司咨询
  • 重庆大渡口网站建设网站增加一体化建设功能的好处
  • 网站开发完整视频网站上传 404
  • 自适应网站做推广北京建设工程招标网
  • 外贸网站设计注意事项网上商城官网入口
  • 正规的营销型网站建设公司微官网是网站吗
  • 南京行业门户网站无锡阿里巴巴做网站
  • 河北省和城乡住房建设厅网站wamp wordpress打不开