
Java异常
木木偏高
这个作者很懒,什么都没留下…
展开
-
基于Java多线程之间的通信关系的案列实现-----卖包子(并发线程)
通过分析需求,我们可以得知我们需要创建2个线程类,包子铺和吃包子的两个线程类。因为包子铺和吃包子的都是同一个包子,所以这里将包子作为对象锁。1.创建一个包子类,设置包子的属性/** * @author jianyeli */public class Baozi { String pi; String xian; boolean flag = true; }2.创建包子铺的线程类/** *包子铺是一个线程类,继承Thread设置线程任务为做包子 * 对包子的状态进行判原创 2020-11-17 22:13:31 · 386 阅读 · 3 评论 -
解决线程安全问题的第三种方法:Lock锁
1.在以上中,使用synchronized我们使用同步方法和同步代码块将线程安全问题锁住,每次只能执行一个线程,但我们并不知道它是何时上锁的,何时解锁的,这里我们将使用Lock锁。2.Lock锁是在Current.Lock包下的,是一个接口,我们需要实现ReentrantLock。3.使用Lock方法上锁,写在线程安全问题代码的前面,Unlock放在线程安全问题代码的后面。** * * @author jianyeli */ public class Runnableimpl implemen原创 2020-11-11 17:31:57 · 291 阅读 · 0 评论 -
解决线程安全问题的第一种方式
当我们开启多个线程任务的时候,会发现他们会读取同一个数据,导致出现线程安全的问题。这里使用实现接口的方式开启多个线程。** * * @author jianyeli */ public class Runnableimpl implements Runnable { public int ticket= 100; @Override //设置线程任务 public void run() { while(true){ if(ticke原创 2020-11-10 23:38:40 · 126 阅读 · 0 评论 -
Java中自定义异常类型
在Java中的异常类型不够我们使用,我们可以自定义异常类型并使用。在这里我们定义一个弹出消息错误的异常类型。/** *Java自定义异常信息 * @author jianyeli */public class RegisterException extends Exception { public RegisterException(){ } public RegisterException(String s){ super(s);原创 2020-11-08 16:42:41 · 478 阅读 · 0 评论 -
Java异常处理的几种机制
异常的分类(Exception)编译时期异常:checked异常。在编译时期,就会检查,如果没有处理异常,则编译失败。运行时期异常:runtime异常。在运行时期,检查异常.在编译时期,运行异常不会编译器检测(不报错)。声明异常throws声明异常:将问题标识出来,报告给调用者。如果方法内通过throw抛出了编译时异常,那么必须通过throws进行声明,让调用者去处理。 public static void readFile(String fileName) throws FileNotFound原创 2020-11-07 21:36:41 · 239 阅读 · 0 评论