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

浙江网站建设cms安康市劳务公司

浙江网站建设cms,安康市劳务公司,西安公司网站如何建设,百度小说排名前言 相关系列 《Java Lock 目录》#xff08;持续更新#xff09;《Java Lock LockSupport 源码》#xff08;学习过程/多有漏误/仅作参考/不再更新#xff09;《Java Lock LockSupport 总结》#xff08;学习总结/最新…前言 相关系列 《Java Lock 目录》持续更新《Java Lock LockSupport 源码》学习过程/多有漏误/仅作参考/不再更新《Java Lock LockSupport 总结》学习总结/最新最准/持续更新《Java Lock LockSupport 问题》学习解答/持续更新     概述 简介 LockSupport 锁支持类是位于JUC包下基于“许可”对线程等待/唤醒进行控制的线程管理工具类。锁支持类对线程赋予了许可概念并通过以1为单位对许可进行分配/消费来控制线程的状态在等待/运行之间相互切换。新创建启动的线程许可数量默认为0并最多允许储存/透支一个许可故而线程的许可数量只能在[-1, 0, 1]三个值之间波动因此在线程许可数量达到高/低上限的情况下锁支持类对线程许可的分配/消费是没有意义的。 新创建启动的线程会因为许可平衡0而处于运行状态此时如果锁支持类消费了该线程的许可则其将因为许可负债-1而进入有限/无限等待状态在这种情况下正常只有分配、中断及超时才能令其许可平衡0而恢复运行。但如果锁支持类对许可平衡0的线程进行了许可分配则线程将因为许可结余1而避免在下次许可消耗中因为许可负债-1而进入等待状态即其会拥有一次等待的豁免权。 因锁支持类而等待的线程在被中断唤醒后会在不抛出中断异常的同时保留中断状态。与因为Thread.sleep(long millis)方法而进入等待状态线程不同因为许可负债-1而进入等待状态的线程在被中断唤醒后不会抛出中断异常并会同时保留中断状态。因此对于锁支持类的调用者而言其可能需要基于需求人为地判断线程是否中断并选择是否清除中断状态及抛出中断异常。 因锁支持类而等待的线程可能发生虚假唤醒。所谓虚假唤醒是指等待线程在分配、中断及超时都未发生的情况下无理由唤醒的情况因此对于线程许可的消费往往需要在循环中进行。循环的退出条件通常即为线程的唤醒条件例如等待线程只有在某操作成功的情况下才会被唤醒则被唤醒后的线程就需要去判断某操作是否已经执行成功成功则退出循环执行下游代码否则便再次进入等待状态以此来避免因为虚假唤醒而导致的程序逻辑紊乱…相关调用示例如下 while (!canProceed()) { ... LockSupport.park(this); }方法 public static void park() —— 停泊 —— 消耗指当前线程的一个许可消耗后如果当前线程许可负债-1则无限等待至因为信号、中断及虚假而唤醒为止否则直接返回。 public static void park(Object blocker) —— 停泊 —— 消耗指当前线程的一个许可消耗后如果当前线程许可负债-1则无限等待至因为信号、中断及虚假而唤醒为止否则直接返回。 public static void parkNanos(long nanos) —— 停泊纳秒 —— 消耗指当前线程的一个许可消耗后如果当前线程许可负债-1则在指定等待时间内有限等待至因为信号、中断、超时及虚假而唤醒为止否则直接返回。 public static void parkNanos(Object blocker, long nanos) —— 停泊纳秒 —— 消耗指当前线程的一个许可消耗后如果当前线程许可负债-1则在指定等待时间内有限等待至因为信号、中断、超时及虚假而唤醒为止否则直接返回。 public static void parkUntil(long deadline) —— 停泊直至 —— 消耗指当前线程的一个许可消耗后如果当前线程许可负债-1则在指定等待时间内有限等待至因为信号、中断、超时及虚假而唤醒为止否则直接返回。该方法与parkNanos(…)方法的区别在于其是要等待至什么时间而非要等待多少时间。 public static void parkUntil(Object blocker, long deadline) —— 停泊直至 —— 消耗指当前线程的一个许可消耗后如果当前线程许可负债-1则在指定等待时间内有限等待至因为信号、中断、超时及虚假而唤醒为止否则直接返回。该方法与parkNanos(…)方法的区别在于其是要等待至什么时间而非要等待多少时间。 可以发现每个形式的停泊方法都会搭配一个功能完全相同但新增了阻塞者入参的同名方法。阻塞者的作用有些难以言明但具体与探查/识别线程等待的状态有关。每个阻塞者形式的停泊方法都会在线程等待前将阻塞者存入线程并于线程唤醒后清除而在线程等待期间其它线程可以获取阻塞者对线程的等待进行状态、原因及时间等各项维度的探查但探查的具体方式未知这可能与阻塞者的自定义设计高度相关。 public static void unpark(Thread thread) —— 结束停泊 —— 为指定线程分配一个许可如果指定线程原本许可负债-1而处于等待状态则分配后将因为许可平衡0而恢复运行如果指定线程原本许可平衡0而处于运行状态则分配后将因为许可结余1而避免在下次许可消耗中因为许可负债-1而进入等待状态。     注意在线程尚未启动的情况上述所有情况都不保证必然发生。 public static Object getBlocker(Thread t) —— 获取阻塞者 —— 获取指定线程的阻塞者快照当指定线程正处于等待状态时正常返回否则返回null。 static final int nextSecondarySeed() —— 下个次要种子 —— 基于当前线程的旧次要种子生成新的次要种子并保存/返回。当旧次要种子为0时说明其为初始值通过随机分配的方式生成新次要种子。但如果新分配的次要种子依旧为0则需要在该情况下手动设置为1如果旧次要种子不为0说明其已被更新过通过位运算的方式生成新次要种子。
http://www.hkea.cn/news/14475424/

相关文章:

  • 山东食品行业网站模板建网站方案
  • wordpress怎么关闭网站企业所得税优惠政策2022年最新
  • 优化网站使用体验深圳微信网站建设
  • 手机企业网站程序wordpress主题破解版
  • 网站模板自助家政公司网站怎么做
  • 网站自己建机房邯郸营销型网站建设
  • 做网站公司需要什么条件网页打不开qq可以上qq
  • 没网站域名可以做备案吗网页和网站的不同
  • api模式网站开发介绍网站界面版式
  • 品牌网站建设小8a蝌蚪广州建设工程交易中心增城电话
  • 江苏江都建设集团有限公司网站免费网上商城网站建设
  • 汽配网站建设成本wordpress吾爱
  • 泰安公司网站建设oppo手机网站建设需求分析
  • 怎么查询菠菜网站做没作弊网站怎么做 织梦
  • 什么公司做企业网站图片生成器网站
  • 建网站的工具物流网站建设摘要
  • qq登录网站怎么做做二手平台公益的网站
  • 网站页面前端基本设计中高端网站建设公司
  • 巴青网站制作望野小说
  • 网站建设要托管服务器网站安全建设需求
  • 微信公众号网站建设wordpress 搬家 换域名
  • wap网站快速开发宁波网站推广营销公司
  • 北京 公司网站 备案中 开通访问网页制作下载图片代码
  • 做论坛网站好吗网站建设价格就要用兴田德润
  • 如何做网站逻辑结构图专业网站设计制作过程
  • 在什么网站上做外贸网站制作公司多少钱
  • 做简单网站需要学什么软件自建网站模板代码
  • 宣传商务型的网站广州企业黄页大全
  • 成都高端网站建设哪家好哪里教做网站的
  • 深圳找做兼职女上班的网站苏州网站制作计划