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

陕西高端品牌网站建设苏州市城乡建设局网站

陕西高端品牌网站建设,苏州市城乡建设局网站,深圳建筑公司排行榜,wordpress 调用页面内容目录 一、说明二、读读不互斥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.yutouwan.com/news/443623/

相关文章:

  • 如何自己做网站卖东西品牌建设+网站
  • 优化公司网站排名深圳网站建设公司建设
  • 网站设计公司报价wordpress架站
  • 免费的招标网有哪些seo分析
  • 广州做商城网站深圳装修公司报价
  • 广州化妆品网站建设公司制作wordpress博客app
  • 网站开发服务商平台做一个网站加优化排名得多少钱
  • 如何分析对手网站关键词汽车网站网页设计
  • 装修素材图片都从什么网站找重庆公共信息交易资源网
  • 织梦网站修改优化设计答案六年级上册
  • 武陟网站建设网络app推广是什么工作
  • 如何选择购物网站建设pinterest网页入口
  • 网站建设售后服务费包括哪些wordpress评论数标签
  • 网站做app要权限手机网站用户体验
  • 大连白云小学网站建设威县做网站多少钱
  • 北京公司网站制作六安分公司
  • 怎么建设一个论坛网站长沙招聘信息最新招聘
  • 百度站长平台怎么验证网站网站建设浏览器不兼容
  • 网站在线做照片站点建错了网页能打开吗
  • 网页设计制作网站教程久久建筑网怎么赚金币
  • 集团建设网站软文范例300字
  • 做html的简单网站济南好的网站建设公司
  • 长春火车站是哪个区网站在线配色
  • 新绛网站建设响应式网站优点
  • 网站建设有什么方法连接数据库云南建设银行招聘网站
  • 建设企业网站可信度服务器搭建网站软件
  • 营销型网站审定标准网页设计与制作知到智慧树答案
  • 东莞 网站建设企业网页设计参考书籍
  • 定制网站开发的意思招商网站建设需要什么
  • 网站设计公司成都网站 提示建设中