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

旅游网站开发技术文档wordpress plug in

旅游网站开发技术文档,wordpress plug in,男装网站的网站建设背景,苏州做网站哪里好面试题 1.你说你用过读写锁#xff0c;锁饥饿问题是什么#xff1f; 2.有没有比读写锁更快的锁#xff1f; 3.StampedLock知道吗?(邮戳锁/票据锁) 4.ReentrantReadWriteLock有锁降级机制策略你知道吗#xff1f; 在并发编程领域#xff0c;有多线程进行提升整体性能… 面试题 1.你说你用过读写锁锁饥饿问题是什么 2.有没有比读写锁更快的锁 3.StampedLock知道吗?(邮戳锁/票据锁) 4.ReentrantReadWriteLock有锁降级机制策略你知道吗 在并发编程领域有多线程进行提升整体性能但是却引入了共享数据安全性问题。基本就是无锁编程下的单线程操作有互斥同步锁操作但是性能不高并且同一时刻只有一个线程可以操作资源类。但是对于大多数常见下都是读操作多写操作少那么可以利用将锁的粒度进行细化进而分化出读锁/写锁。也就是syn/ReentrantLock的升级版本ReentrantReadWriteLock。 读写锁 public class LockDemo {private static MapInteger,Integer cacheMap new HashMap();private Lock lock new ReentrantLock();private ReentrantReadWriteLock readWriteLock new ReentrantReadWriteLock();public void write(Integer key, Integer value) {readWriteLock.writeLock().lock();try {System.out.println(当前key正在写入);Thread.sleep(500);cacheMap.put(key,value);System.out.println(当前key写入完毕);} catch (Exception e) {e.fillInStackTrace();} finally {readWriteLock.writeLock().unlock();}}public void read(Integer key) {readWriteLock.readLock().lock();try {System.out.println(当前key正在读取);cacheMap.get(key);System.out.println(当前key读取完毕);} catch (Exception e) {e.fillInStackTrace();} finally {readWriteLock.readLock().unlock();}}public static void main(String[] args) {LockDemo lockDemo new LockDemo();for (int i 0; i 10; i) {int finalI i;new Thread(()-{lockDemo.write(finalI, finalI);}).start();}for (int i 0; i 10; i) {int finalI i;new Thread(()-{lockDemo.read(finalI);}).start();}}} 从执行结果来看读锁不互斥。读取1的时候还可以读取别的数据。 锁降级 锁降级是为了让当前线程感知到数据的变化目的是保证数据可见性 public class LockDemo2 {public static void main(String[] args) {ReentrantReadWriteLock readWriteLock new ReentrantReadWriteLock();ReentrantReadWriteLock.ReadLock readLock readWriteLock.readLock();ReentrantReadWriteLock.WriteLock writeLock readWriteLock.writeLock();readLock.lock();System.out.println(读取数据);readLock.unlock();writeLock.lock();System.out.println(写入数据);readLock.lock();System.out.println(读取数据);writeLock.unlock();readLock.unlock();}}调整顺序之后读锁不能升级为写锁但是写锁可以降级为读锁。 存在的问题 为了解决读写锁锁饥饿的问题解决方案有两个1.通过使用公平锁来解决但是公平锁会牺牲系统吞吐量为代价的。 2.使用stampedLock邮戳锁。 stampedlock 代表了锁的状态。当stamp返回零时表示线程获取锁失败。并且当释放锁或者转换锁的时候都要传入最初获取的stamp值。 因为读写lock虽然可以提升一定的性能但是因为存在饥饿的问题读写互斥。而邮戳锁是一种乐观锁使用类似版本校验的机制选判断数据有没有修改没有修改直接读取有修改则升级为悲观读取。其实是一种权衡。 StampedLock有三种访问模式 ①Reading读模式功能和ReentrantReadWriteLock的读锁类似 ②Writing写模式功能和ReentrantReadWriteLock的写锁类似 ③**Optimistic reading乐观读模式无锁机制类似于数据库中的乐观锁**支持读写并发很乐观认为读取时没人修改假如被修改再实现升级为悲观读模式 StampedLock的缺点 StampedLock 不支持重入没有Re开头StampedLock 的悲观读锁和写锁都不支持条件变量Condition这个也需要注意。使用 StampedLock一定不要调用中断操作即不要调用interrupt() 方法 如果需要支持中断功能一定使用可中断的悲观读锁 readLockInterruptibly()和写锁writeLockInterruptibly() 小结 本篇主要介绍了读写锁以及读写锁的锁饥饿问题为了进一步提升性能引入了邮戳锁但是邮戳锁不支持重入和中断等。
http://www.zqtcl.cn/news/614083/

相关文章:

  • 陕西城乡建设部网站怎么用自己注册的域名做网站
  • 企业邮箱注册价格汕头做网站优化的公司
  • 高校工会网站建设网站静态页面生成
  • 辽宁省营商环境建设局 网站做网站前端后端ui什么意思
  • 合作社网站模板贵州安顺建设主管部门网站
  • 网站不备案能访问吗哪家做企业网站
  • 做网站写的代号好跟不好的区别企信网企业信用信息系统
  • 网站需要服务器吗手机网站解决方案
  • 网站子网页怎么做国外网站 模板
  • 手机评测网站标志设计分析
  • 网页游戏网站建设成都公司网站
  • 网站流量统计分析的误区wordpress二级目录安装
  • 深互动平台网站wordpress后台无法访问
  • 建立网站需要服务器吗网站建设辶首先金手指十四
  • 做的成功的地方网站办公室工装设计公司
  • 怎样添加网站上百度商桥代码网站建设实验报告手写
  • 江阴做网站优化辽宁世纪兴电子商务服务中心
  • 最新创建的网站搭建网站的平台有哪些
  • 全国房地产网站企管宝app下载
  • 无线网络网站dns解析失败南通模板建站多少钱
  • h5手机网站建设哪家好北京海淀房管局网站
  • 制作一个简单的网站冬奥会网页设计代码
  • 如何做网站 百度西充建设部门投诉网站
  • 怎么创建自己的博客网站网站优化主要内容
  • 太原网站建设推广建设网站观澜
  • 网站开发员名称是什么网站制作教程及流程
  • 建设财经资讯网站的目的移动端网站模板怎么做的
  • 受欢迎的赣州网站建设青岛建站
  • 青海网站制作哪家好烟台龙口网站建设
  • 婚恋网站排名前十名网站建设的论坛