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

做图片赚钱的网站2021年重大新闻事件

做图片赚钱的网站,2021年重大新闻事件,无锡装饰网站建设排名,爱采购网MultiLock MultiLock#xff0c;英语直译为多个锁。 redisson分布式锁中的MultiLock这个机制#xff0c;可以将多个锁合并为一个大锁#xff0c;对一个大锁进行统一的申请加锁以及释放锁 一次性锁定多个资源#xff0c;再去处理一些事情#xff0c;然后事后一次性释放所…MultiLock MultiLock英语直译为多个锁。 redisson分布式锁中的MultiLock这个机制可以将多个锁合并为一个大锁对一个大锁进行统一的申请加锁以及释放锁 一次性锁定多个资源再去处理一些事情然后事后一次性释放所有的资源对应的锁 RLock lock1 redisson.getLock(anyLock1);RLock lock2 redisson.getLock(anyLock2);RLock lock3 redisson.getLock(anyLock3);RedissonMultiLock multiLock new RedissonMultiLock(lock1, lock2, lock3);multiLock.lock();multiLock.unlock();在项目里使用的时候很多时候一次性要锁定多个资源比如说锁掉一个库存锁掉一个订单锁掉一个积分一次性锁掉多个资源多个资源都不让别人随意修改然后你再一次性更新多个资源释放多个锁 MultiLock的源码我们初步看一下其实也不过是没什么特别的就是包裹了多个RedissonLock底层就是尝试依次对每一个锁都要成功加锁如果所有的锁都成功加锁了之后那么就认为MultiLock就成功加锁了 释放锁 依次去释放每一把锁就可以 释放锁的代码一目了然就是循环释放每一把锁。 加锁 再看一下的源码 这里的locks就是RedissonMultiLock中我们传的几个锁锁的个数*3基础等待时间baseWaitTime是4500毫秒。 if和else判断中都是算等待时间的逻辑。 而最下面的while死循环就是要加锁的逻辑就是不停地加锁失败了继续加锁。只要没有全部获取到就一直循环。 RedissonMultiLock.tryLock()方法中 截止到226行这几个时间分别是 watTime 4500毫秒 time 当前时间 remainTime 4500毫秒 lockWaitTime 4500毫秒 failedLocksLimit 0 awaitTime 4500毫秒 继续走到for循环里面取出来locks中的一个锁开始处理 调用了lock.tryLock()方法 这是获取锁的关键代码 lockAcquired lock.tryLock(awaitTime, newLeaseTime, TimeUnit.MILLISECONDS); lock是底层的RedissonLock他没有使用lock.lock()用的是tryLock()指定了获取锁等待超时的时间4500毫秒必须获取到这个锁如果获取不到这个锁就退出标记为获取锁失败 哪怕是获取到锁之后这个锁在多长时间内会自动释放newLeaseTime是-1因为你的newLeaseTime是-1所以说如果获取到了锁会启动一个lock watchdog不断的刷新你的锁key的生存时间为30000毫秒 继续往下现在情况是拿到锁之后不会再走蓝色选中的代码了。 最后走到if (remainTime ! -1)代码中去这里的逻辑是怎么回事呢 remainTime 4500毫秒 经过了一个lock的获取可能消耗掉了比如说20毫秒100毫秒500毫秒耗费了500毫秒 remainTime 4500毫秒 - 500毫秒 4000毫秒 time 当前时间 如果remainTime 0意味着什么呢获取锁的时间已经超过了4500毫秒了迄今为止你获取到这些所的时间已经超过了预设的4500毫秒了相当于是你获取多个锁的时间最多不能超过4500毫秒 如果一旦获取各个锁的时间超过了4500毫秒此时就会释放掉所有已经获取的锁然后返回一个false再次进入while true中的一个死循环尝试走上述一模一样的流程 获取了三把锁耗时了1000毫秒此时remainTime还剩下3500毫秒4477450023毫秒获取了三把锁 释放锁的话就是依次调用所有的锁的释放的逻辑lua脚本同步等待所有的锁释放完毕才会返回 而加锁的话默认的行为之下你包裹了几把锁就会锁数量 * 1500毫秒获取所有的锁必须在多长时间之内就要结束如果超时就会重新再次死循环尝试获取锁。使用的是各个锁的tryLock()方法指定了说在获取每个单独的锁的时候会有一个获取超时退出的时间
http://www.w-s-a.com/news/630913/

相关文章:

  • 网站开发步骤规划蓝天云免费空间主机
  • 网站字体规范wordpress找不到页面内容编辑
  • 静态网站建设参考文献茂名营销型网站制作公司
  • 君山区建设局网站风铃微网站怎么做
  • 购物网站销售管理合肥网络推广平台
  • 网站建设规划书txt微盘注册帐号
  • 小说网站开发实训报告企业网盘收费标准
  • mvc网站开发医疗医院网站建设
  • 天津市建设厅官方网站wordpress设置404
  • 贵阳好的网站建设免费正能量网站下载ww
  • 免费学习的网站平台自建站seo如何做
  • 海南三亚做网站公众号版面设计创意
  • 学校网站建设目的与意义合肥网页定制
  • 网站查询地址网站建设与维护费用
  • 做网站哪些软件比较好合肥外贸网站建设公司
  • 建网站需要哪些条件专业网站设计报价
  • 定制网站开发技术化妆品的网站布局设计图片大全
  • 网站模糊设计发布产品的免费平台有哪些
  • 网站建站什么目录桂林网站建设内容
  • 光明新区城市建设局网站长沙营销型网站制作费用
  • 网站建设制度制定wordpress主题哥
  • 门户网站的种类php网站开发实训心得
  • 流程图制作网页网络优化seo
  • 个人公益网站怎么制作wordpress flat theme
  • 做营销型网站的公司篇高端网站愿建设
  • 五莲网站建设维护推广凡科做网站的方法
  • 山东省住房建设厅网站首页网站文章更新怎么通知搜索引擎
  • 商务网站的可行性分析包括大流量网站 优化
  • 推广网站有效的方法网站数据统计
  • 自建视频网站WordPress数据库添加管理员