InterruptedException的学习
首先贴一下overstack上的一个回答:
理解:
(1)throws InterruptedException是你方法声明的一部分,也是你调用方法的返回值。
(2)当你的方法调用另一个方法的时候抛出了InterruptException异常,你就应该思考:InterruptException对于你的方法来说是不是有意义的结果?如果是,那你的方法就可以进行异常声明并将异常进行向上传播.例如:你的方法需要等待网络传递过来数值参数来完成计算并返回结果,如果网络一直阻塞导致无法完成计算过程,你就可以将InterruptedException异常进行向上传播.如果不是,那你就不能将InterruptedException抛出,而是应该将其捕获.有两件事情你应该熟记在心:1.其他线程可能阻塞了你的线程,或者是想优雅的取消你的操作,那么你就应该尽快返回. 2.即使你的方法在遇到InterruptedException的时候也能够返回有意义的值,线程被干扰的事实也是很重要的.如果调用你方法的代码想知道你的方法执行期间是否遇到过干扰,你就应该记录下:Threaed.currentThread().interrupt()
上面的这个例子展示了当调用computeSum这个函数的时候对可能抛出的InterruptException异常的处理,这种方法相比于直接返回栈信息或者抛出RuntimeException异常来说要友好很多.
上面的例子是说当你需要读取一个文件,你需要间隔性的尝试10次,如果在线程休眠时期遇到了中断,你就可以进行声明并异常抛出.
转载于:https://www.cnblogs.com/Guoyutian/p/5189434.html
InterruptedException的学习相关推荐
- Java学习总结:29
线程间的经典操作案例--生产者与消费者案例 程序基本模型: package Project.Study.Multithreading;class Message{private String titl ...
- rocketmq 组监听_最全的RocketMQ学习指南,程序员必备的中间件技能
一.简介 RocketMq是阿里开发出来的一个消息中间件,后捐献给Apache.官网上是这样介绍的: Apache RocketMQ™ is a unified messaging engine, l ...
- zookeeper学习记录
2019独角兽企业重金招聘Python工程师标准>>> 背景 前段时间看了S4流计算引擎,里面使用到了zookeeper进行集群管理,所以也就花了点时间研究了下zookeeper,不 ...
- Logback学习笔记1
Logback介绍 Logback 分为三个模块:Core.Classic 和 Access.Core模块是其他两个模块的基础. Classic模块扩展了core模块. Classic模块相当于log ...
- 必须要掌握的 InterruptedException 异常处理
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:不学无数的程序员 www.jianshu.com/p/a8a ...
- Java并发学习三:银行转账的死锁问题解决及示例
Java并发学习系列文章:Java并发学习-博客专栏 今天在学习极客时间专栏:<Java并发编程实战> 从03 | 互斥锁(上):解决原子性问题到06 | 用"等待-通知&quo ...
- Java并发学习一:CPU缓存导致的可见性问题带来的并发Bug
Java并发学习系列文章:Java并发学习-博客专栏 今天在学习极客时间专栏:<Java并发编程实战> 第一讲01 | 可见性.原子性和有序性问题:并发编程Bug的源头中提到了: 多核时代 ...
- [转]java.lang.instrument 学习(一)
[转]java.lang.instrument 学习(一) 收藏 sunyh 发表于 10个月前 阅读 40 收藏 3 点赞 1 评论 0 转自:http://jiangbo.me/blog/201 ...
- java学习笔记13--反射机制与动态代理
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...
最新文章
- laravel ajax vue6,详解用vue.js和laravel实现微信支付
- 为什么说Python是一门动态语言--Python的魅力
- 02_记录学生相关数据,输出平均分数
- Ubuntu:成功解决ubuntu使用su切换root出现Authentication failure用户时认证失败
- PyTorch基础(13)-- torch.nn.Unfold()方法
- 依赖注入 这样的坑游戏编程要谨慎
- easymock 图片_数据模拟神器 easy-mock 正式开源
- asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(二)—— easyui的简单实用
- [翻译]:怎样从C/C++代码中对C#进行回调
- Nodejs 路由封装 封装一个类似 express 的路由
- django项目时间与Ubuntu时间不一致
- java 批量执行 sql_执行批量操作 - SQL Server | Microsoft Docs
- phpstorm 不能选择 php language level
- PYNQ实战笔记(一)————常用的代码使用及配置技巧-持续更新
- vue router-link添加点击事件无效
- 全国计算机二级C语言考试难不难?应该怎么备考?
- [HTML]北京邮电大学信息与通信工程学院选课参考指南
- 密码学实验4 欧拉数求解和DES的初始置换
- 非财务人员的财务培训教(一.二)------财务基础知识
- 基于微信小程序的在线商城设计(后台PHP)
热门文章
- UP-DETR:收敛更快!精度更高!华南理工微信开源无监督预训练目标检测模型...
- DBFace升级,模型仅1.3M的轻量级高精度人脸检测模型
- FoveaBox:目标检测新纪元,无Anchor时代来临!
- 收藏 | 一文带你深入理解深度学习最新进展
- 精华文稿 | 工业场景中机器人定位导航技术
- 面向小姐姐的编程——java面相对象之抽象
- 一文初探Tensorflow高级API使用(初学者篇)
- 常用机器学习算法优缺点及其应用领域
- apache php 工作模式,PHP Apache中两种工作方式区别(CGI模式、Apache 模块DLL)
- MYSQL8 度分秒(DMS)转度(DDD)函数编写实战