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

海外永久不收费的加速器seo外链工具源码

海外永久不收费的加速器,seo外链工具源码,鄂州做网站多少钱,北京商标注册ReadWriteLock包括两种子锁 (1)ReadWriteLock ReadWriteLock 可以实现多个读锁同时进行,但是读与写和写于写互斥,只能有一个写锁线程在进行。 (2)StampedLock StampedLock是Jdk在1.8提供的一种读写锁&a…

ReadWriteLock包括两种子锁

(1)ReadWriteLock

ReadWriteLock 可以实现多个读锁同时进行,但是读与写和写于写互斥,只能有一个写锁线程在进行。

(2)StampedLock

StampedLock是Jdk在1.8提供的一种读写锁,相比较ReentrantReadWriteLock性能更好,因为ReentrantReadWriteLock在读写之间是互斥的,使用的是一种悲观策略,在读线程特别多的情况下,会造成写线程处于饥饿状态,虽然可以在初始化的时候设置为true指定为公平,但是吞吐量又下去了,而StampedLock是提供了一种乐观策略,更好的实现读写分离,并且吞吐量不会下降。

StampedLock包括三种锁:

(1)写锁writeLock:

writeLock是一个独占锁写锁,当一个线程获得该锁后,其他请求读锁或者写锁的线程阻塞, 获取成功后,会返回一个stamp(凭据)变量来表示该锁的版本,在释放锁时调用unlockWrite方法传递stamp参数。提供了非阻塞式获取锁tryWriteLock。

(2)悲观读锁readLock:

readLock是一个共享读锁,在没有线程获取写锁情况下,多个线程可以获取该锁。如果有写锁获取,那么其他线程请求读锁会被阻塞。悲观读锁会认为其他线程可能要对自己操作的数据进行修改,所以需要先对数据进行加锁,这是在读少写多的情况下考虑的。请求该锁成功后会返回一个stamp值,在释放锁时调用unlockRead方法传递stamp参数。提供了非阻塞式获取锁方法tryWriteLock。

(3)乐观读锁tryOptimisticRead:

tryOptimisticRead相对比悲观读锁,在操作数据前并没有通过CAS设置锁的状态,如果没有线程获取写锁,则返回一个非0的stamp变量,获取该stamp后在操作数据前还需要调用validate方法来判断期间是否有线程获取了写锁,如果是返回值为0则有线程获取写锁,如果不是0则可以使用stamp变量的锁来操作数据。由于tryOptimisticRead并没有修改锁状态,所以不需要释放锁。这是读多写少的情况下考虑的,不涉及CAS操作,所以效率较高,在保证数据一致性上需要复制一份要操作的变量到方法栈中,并且在操作数据时可能其他写线程已经修改了数据,而我们操作的是方法栈里面的数据,也就是一个快照,所以最多返回的不是最新的数据,但是一致性得到了保证。

http://www.dt0577.cn/news/57097.html

相关文章:

  • 个体户可以备案网站吗西安疫情最新数据消息5分钟前
  • 成立一家公司的基本流程成都seo工程师
  • 网站服务器物理地址怎么查广州seo优化排名公司
  • 重庆企业网站推广百度应用搜索
  • 网站移动端适配怎么做seo sem
  • 怎么做网站平台网站销售怎么推广
  • 上海网站制作电商平台推广公司
  • 网站做缓存吗深圳全网推广公司
  • 山东高端网站建设wang如何做网页设计
  • 找人做网站!!! 网站定制开发近期10大新闻事件
  • 政府网站建设背景随机关键词生成器
  • 温州最大的外贸公司百度seo是啥
  • 电商网站免费设计百度登录入口
  • 网站产品分类设计手机app免费下载
  • 安徽网新科技有限公司网站开发竞价推广代运营
  • 做渔家乐推广的有哪些好网站武汉大学人民医院地址
  • 做搜狗pc网站优化排市场营销证书含金量
  • 上海制作网站的网站新乡网站推广
  • 北滘网站建设商品推广与营销的方式
  • 怎么用电脑做网站虚拟空间市场调研表模板
  • 有哪些做室内设计好用的网站最新的即时比分
  • 南宁 做网站小红书推广方式有哪些
  • 长沙网站建设服务公司自己如何建立网站
  • pc网站如何做移动适配长沙网站推广智投未来
  • 国外建设网站用的是什么软件有没有专门做策划的公司
  • 4233网页游戏大全东莞seo报价
  • 网站建设浏览器不兼容爱站网的关键词是怎么来的
  • 时尚女装网站模版微信视频号小店
  • 个人网站制作图片拓客引流推广
  • 如何给网站做轮播图网络营销的五大特点