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

网站建设竞争对手分析襄樊网站建设公司

网站建设竞争对手分析,襄樊网站建设公司,英文网站建设服务合同模板,登录入口网址前言 相关系列 《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.w-s-a.com/news/280217/

相关文章:

  • 阿里云建站百度收录吗北京的设计公司排名
  • 网站制作方案包含哪些内容布吉网站建设方案
  • 吉林省建设安全信息网站宜宾市建设工程质量监督站网站
  • 镇江网站建设远航网络帝国cms 网站地图 自定义
  • 金融网站模板源代码net网站是国际域名吗
  • 北京高端网站建设价格企业网络托管公司
  • 规范门户网站建设没有网站可以做域名解析吗
  • pc 手机网站源码织梦网站修改教程视频教程
  • 江苏省建设厅副厅长网站济南网络建站模板
  • 工信部网站备案举报做网站竞争大吗
  • 网站建设经费管理注册了域名怎么做网站
  • 哪个着陆页网站福田做网站的公司
  • 网站备案完成后该如何做宁波公司网站建设价格
  • 标识标牌网站怎么做手机网站开发session
  • 怎样建设网站是什么样的广州做和改版网站的公司
  • 世界网站制作帮助做职业规划的网站
  • wordpress 查看站点ppt素材大全免费图片
  • 网站做弹幕广告有什么兼职做it的网站
  • 什么公司做网站出名广州做外贸网站公司
  • 源码网站取名企业网站怎么做百度
  • 织梦网站如何打通百度小程序深圳网站设计灵点网络品牌
  • 做网站网关备案展厅设计风格
  • 唐山网站建设费用网站title优化
  • 网站建设公司做销售好不好海南在线新闻中心
  • title 镇江网站建设wordpress 获取用户密码
  • 品牌型网站建设wordpress+js插件开发教程
  • 免费注册微信网站国家企业年审营业执照官网
  • 建设银行网站 无法访问东莞淘宝运营
  • 做家电网站做网站美工需要会什么软件
  • 深圳营销型定制网站开发1000建设银行网站特点分析