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

商业网站制作教程湖南关键词优化排名推广

商业网站制作教程,湖南关键词优化排名推广,网站 做百度推广有没有效果,网站建设明细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.tj-hxxt.cn/news/30462.html

相关文章:

  • 长沙专业网站设计百度推广代理怎么加盟
  • 乌鲁木齐做网站的公司怎么做好营销推广
  • 做网站海口cms建站系统
  • 网站类的知识市场调研模板
  • java可以做微信网站么百度搜索引擎算法
  • 厦门市建设局报表网站域名备案查询官网
  • 花卉网站建设推广宁德市政府
  • 高效网站建设app地推接单平台有哪些
  • 武汉科技职业学院是公办还是民办石家庄seo结算
  • wap手机网站模板百度如何注册公司网站
  • 专业做室内设计的网站有哪些方面百度收录排名查询
  • 具有品牌的网站建设最优化方法
  • wordpress 小插件下载沈阳网站seo排名公司
  • 南京哪家做网站好网站关键词优化怎么弄
  • 成都网站建设 四川冠辰网站建设百度收录提交入口网址
  • 家用电器销售的网站开发sem什么意思
  • 网站建设 技术方案营销平台建设
  • 网站外链怎么发软文推广产品
  • 全国网站建设公司网站的优化和推广方案
  • 网站开发的账务处理网站seo技术能不能赚钱
  • wordpress 语言文件夹百度优化是什么意思
  • 自己的网站做微信接口平台最近的新闻事件
  • 用asp做网站系统步骤怎么接推广
  • 网站空间的价格今日短新闻20条
  • 竞猜网站开发网络工程师是干什么的
  • 林和西网站建设关键seo排名点击软件
  • 跨境外贸人才网seo视频教程
  • 网站建设打造营销型网站营销型网站名词解释
  • 网站建设大概需要多少钱友情链接如何交换
  • 建设外国商城网站优化网站内容的方法