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

天津河东区网站建设县局网站建设招标

天津河东区网站建设,县局网站建设招标,品牌策划 网站源码,网页设计公司概念我只是在观看Heinz Kabutz的VJUG采访 #xff0c;这启发了我写一篇有关中断的文章。 顺便说一句#xff0c;我建议您订阅VJUG YouTube频道 -确实非常有用。 Heinz始终是物有所值的#xff0c;并且很难学到很多东西就很难看他的演讲。 他提出了有关如何处理InterruptedExcep… 我只是在观看Heinz Kabutz的VJUG采访 这启发了我写一篇有关中断的文章。 顺便说一句我建议您订阅VJUG YouTube频道 -确实非常有用。 Heinz始终是物有所值的并且很难学到很多东西就很难看他的演讲。 他提出了有关如何处理InterruptedException的主题并假设很少有Java程序员正确地处理它。 我读过的有关Java的最喜欢的书– Java Concurrency In Practice p138-144中包含了我所阅读的关于线程中断的最佳解释。 如果您已阅读这些页面您将知道如何正确处理InterruptedException :-) 这是一个简短的摘要 您多久遇到一次此代码 ....... try {Thread.sleep(1000); } catch(InterruptedException e){e.printStackTrace(); } ...... 一个进程需要睡眠一秒钟但“烦人”必须处理InterruptedException 。 开发人员实际上并不知道如何处理此异常因此只需将其记录到控制台即可。 这是非常不好的做法 如果您确定线程永远不会中断您是在封闭的系统中编写此代码则可能应该执行一些操作例如在catch块中抛出AssertionError并添加注释以免发生这种情况。 如果完全有可能线程被中断那么您需要正确处理该中断。 可以通过调用其interrupt()方法来中断线程。 这会将其中断状态设置为true因此当您调用isInterrupted()将返回true。 当调用interrupt() 某些阻塞方法例如Thread.sleep()将抛出InterruptedException 。 请注意触发InterruptedException会将中断状态设置为false。 线程上有一个名为interrupted()的方法该方法像isInterrupted()返回线程的中断状态但关键是将中断状态重新设置为false。 interrupted()是一个非常奇怪的命名方法… 在以下示例中我们可以看到所有这些工作 package util;/*** Created by daniel on 16/04/15.*/ public class Interrupt {public static void main(String[] args) {Thread sleeperThread new Thread(){public void run(){try {Thread.sleep(1000);} catch (InterruptedException e) {System.out.println(isInterrupted()); //prints falseinterrupt();System.out.println(isInterrupted()); //prints trueSystem.out.println(interrupted()); //prints trueSystem.out.println(isInterrupted()); //prints false}}};sleeperThread.start();sleeperThread.interrupt();} } 在实践中引用Java并发性 “ API或语言规范中没有任何内容可以将中断与任何特定的取消语义联系起来但实际上对除中断之外的任何事物使用中断都是脆弱的并且在大型应用程序中难以维持。” 换句话说中断只是一个信号。 从理论上讲您可以使用中断机制来指示线程执行您想要的任何操作也许可以执行操作A而不是执行操作B –但是我们建议您不要这样做。 ....... try {Thread.sleep(1000); } catch(InterruptedException e){actionA();return; } actionB(); ...... 那么处理中断的正确方法是什么。 好吧这取决于您的代码。 假设我们使用“正确”的中断作为取消并且您的代码希望发生取消应在文档中指定那么您的代码应以受控方式取消其操作。 仅仅因为引发异常并不意味着您必须匆忙退出而将一团糟留在身后。 因为您已经处理了中断所以无需恢复线程上的中断状态。 如果您不希望中断那么您应该适当地处理该中断也许完成您正在做的事情然后在线程上恢复该中断以便在堆栈上端处理一些代码。 请记住一旦引发异常中断状态将设置为false。 这是应该如何完成的方式摘自本书的代码 public Task getNextTask(BlockingQueueTask queue){boolean interrupted false;try{while(true){try{return queue.take();}catch(InterruptedException e){interrupted true;//retry}}}finally {if(interrupted){Thread.currentThread().interrupt();}}}翻译自: https://www.javacodegeeks.com/2015/04/dealing-with-interruptions.html
http://www.pierceye.com/news/751998/

相关文章:

  • 外贸英文商城网站建设微信公众帐号开发
  • 上海做网站运维的公司用手机制作自己的网站
  • 西安做网站朋朋网络花都区建设网站
  • 国外的贸易网站wordpress 不会编程
  • 设计网页作业seo如何优化网站推广
  • 黑龙江建设网官方网站特种作业电脑网站策划书
  • 系统开发和网站开发厦门专业网站营销
  • 网站在线交谈wordpress信息填写
  • 服饰网站建设微网站建设 合同
  • dede网站 远程生成wordpress后台不能登陆
  • word如何做网站链接湖南省绿色建筑信息平台
  • v9网站模板网站建设六道
  • php网站开发原理企业门户网站费用
  • 白银市建设管理处网站定制网站建设和运营
  • 免费音乐网站建设新闻资讯建站服务商
  • 佛山市建设企业网站服务机构普通网站建设计入什么科目
  • 阿里虚拟机建设网站网络科技有限公司营业执照
  • 如何申请建设网站首页培训机构怎么做线上推广
  • 网站维护升级访问中做网站工单
  • 如何用ae做模板下载网站电脑网站建设规划
  • 北京京水建设集团有限公司网站西青做网站
  • 自己建的网站可以用笔记本做服务器吗网站建设后台系统有哪些
  • 做的asp网站手机号码网站开发软件手机版
  • android 做电子书下载网站网络热词作文
  • 网络网站销售龙岩建筑网
  • 专门找事做的网站iis7 wordpress伪静态规则
  • 做字体的网站济宁网站建设 济宁智雅
  • 工程门户网站建设怎样制作表白网站
  • 手机如何创建个人网站上海 .net网站建设
  • 小程序app软件定制开发首页排名优化公司