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

信贷网站开发株洲网站制作建设

信贷网站开发,株洲网站制作建设,深圳公司黄页企业名录,新闻门户网站什么意思转载自 一文搞懂 Java 线程中断 在之前的一文《如何优雅地终止一个线程》中详细说明了 stop 终止线程的坏处及如何优雅地终止线程#xff0c;那么还有别的可以终止线程的方法吗#xff1f;答案是肯定的#xff0c;它就是我们今天要分享的——线程中断。 下面…转载自   一文搞懂 Java 线程中断 在之前的一文《如何优雅地终止一个线程》中详细说明了 stop 终止线程的坏处及如何优雅地终止线程那么还有别的可以终止线程的方法吗答案是肯定的它就是我们今天要分享的——线程中断。 下面的这断代码大家应该再熟悉不过了线程休眠需要捕获或者抛出线程中断异常也就是你在睡觉的时候突然有个人冲进来把你吵醒了。 try {Thread.sleep(3000); } catch (InterruptedException e) {e.printStackTrace(); }此时线程被打断后代码会继续运行或者抛出异常结束运行这并不是我们需要的中断线程的作用。 到底是什么是线程中断 线程中断即线程运行过程中被其他线程给打断了它与 stop 最大的区别是stop 是由系统强制终止线程而线程中断则是给目标线程发送一个中断信号如果目标线程没有接收线程中断的信号并结束线程线程则不会终止具体是否退出或者执行其他逻辑由目标线程决定。 我们来看下线程中断最重要的 3 个方法它们都是来自 Thread 类 1、java.lang.Thread#interrupt 中断目标线程给目标线程发一个中断信号线程被打上中断标记。 2、java.lang.Thread#isInterrupted() 判断目标线程是否被中断不会清除中断标记。 3、java.lang.Thread#interrupted 判断目标线程是否被中断会清除中断标记。 线程中断实战 我们来实例演示下线程中断如何用 示例1中断失败 /*** 微信公众号Java技术栈*/ private static void test1() {Thread thread  new Thread(() - {while (true) {Thread.yield();}});thread.start();thread.interrupt(); }请问示例1中的线程会被中断吗答案不会因为虽然给线程发出了中断信号但程序中并没有响应中断信号的逻辑所以程序不会有任何反应。 示例2中断成功 /*** 微信公众号Java技术栈*/ private static void test2() {Thread thread  new Thread(() - {while (true) {Thread.yield();// 响应中断if (Thread.currentThread().isInterrupted()) {System.out.println(Java技术栈线程被中断程序退出。);return;}}});thread.start();thread.interrupt(); }我们给示例2加上了响应中断的逻辑程序接收到中断信号打印出信息后返回退出。 示例3中断失败 /*** 微信公众号Java技术栈*/ private static void test3() throws InterruptedException {Thread thread  new Thread(() - {while (true) {// 响应中断if (Thread.currentThread().isInterrupted()) {System.out.println(Java技术栈线程被中断程序退出。);return;}try {Thread.sleep(3000);} catch (InterruptedException e) {System.out.println(Java技术栈线程休眠被中断程序退出。);}}});thread.start();Thread.sleep(2000);thread.interrupt(); }示例3 sleep() 方法被中断并输出了 Java技术栈线程休眠被中断程序退出。 程序继续运行……为什么呢 来看 sleep 的源码 可以看出 sleep() 方法被中断后会清除中断标记所以循环会继续运行。。 示例4中断成功 /*** 微信公众号Java技术栈*/ private static void test4() throws InterruptedException {Thread thread  new Thread(() - {while (true) {// 响应中断if (Thread.currentThread().isInterrupted()) {System.out.println(Java技术栈线程被中断程序退出。);return;}try {Thread.sleep(3000);} catch (InterruptedException e) {System.out.println(Java技术栈线程休眠被中断程序退出。);Thread.currentThread().interrupt();}}});thread.start();Thread.sleep(2000);thread.interrupt(); }示例4全部信息输出并正常退出只是在 sleep() 方法被中断并清除标记后手动重新中断当前线程然后程序接收中断信号返回退出。
http://wiki.neutronadmin.com/news/114622/

相关文章:

  • 清流县建设局网站ajax数据库网页网站设计
  • php 网站开发架构信息产业部 备案网站
  • 网站营销教程阿里做外贸的网站
  • 贵州建设厅网站怎么查询资质用lnmp做网站
  • wordpress商城建站做外贸无法登录国外网站怎么办
  • 免费的tickle网站logo设计报价明细表
  • 高质量网站外链平台捕鱼网站开发
  • 湖南中虹羽建设工程有限公司网站asp网站301
  • 站内搜索工具网页qq登录网址
  • 深圳网站建设现网站建设岗位将来有什么发展
  • 优化网站及商品排名怎么做宣城哪里做网站
  • 韩国网站如何切换中文郑州seo哪家好
  • 北海网站建设公司网站横幅怎么做
  • 江西省城乡建设厅网站广州专业的网站开发公司
  • 襄阳城乡建设局网站首页免费网站正能量app应用大全
  • 手机网站建设推广自己做的博客网站吗
  • 招商网站建设的必要性什么网站专门做自由行的
  • 钓鱼网站制作视频教程最近时政新闻10条
  • 扁平式网站淘宝网页版电脑版登录淘宝网
  • 网站域名空间管理东莞招聘网有哪些比较好
  • 网站建设公司哪家好 在线磐石网络nas服务器可以做网站吗
  • 徐州云建站模板织梦模板可以在wordpress用
  • 如何投诉做网站的公司建设部网站上查不到资质的企业
  • 外贸网站仿牌主机怎么找wordpress模板代码
  • 网站做权重的好处昆明响应式网站制作
  • 常州做网上废品收购网站做网站数据存在哪里
  • 一流的盐城网站建设室内设计师可以自学吗
  • 私人网站建设成本python在线观看
  • 国外做做网站怎么做网站dns加速
  • 兰州网站建设企业名录前端开发工具哪个好