首页 > 编程语言 >java多线程分析

java多线程分析

时间:2023-03-05 22:33:02浏览次数:35  
标签:分析 run 处理 线程 java 多线程 异常


在java多线程中编程中,异常处理非常重要,会影响应用程序的整体运行情况。
1、线程中可以捕捉的异常
我们在普通的方法中,是支持exception往上层throw,简单来说,就是当前逻辑不处理异常,捕捉到该异常后,向上层调用方传递,让上层调用方去处理,层层上扔,最后直接扔给用户(比如扔到html页面)。
线程的一个处理逻辑是:因为线程是调度的基本单位,因此有了错误,尽量自己解决。
因为线程是有逻辑的,一个线程就应该完成一种工作,而主线程把任务交给子线程以后,也不应该再去关注子线程的异常,因此子线程自己要处理异常;

@Override
public void run() {
while(true){
try {
throw new Exception();//该异常必须要在run方法内捕捉
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}

假如java有编译器发现的异常,就必须在线程内捕捉。

2、动态运行的异常
但是异常很多,并不是所有的异常都能够在编译器捕捉到,在没有办法的情况下,异常还是抛出到线程外,这个时候,会造成该线程异常停止,比如除数为0的情况。

@Override
public void run() {
while(true){
System.out.println(4/0);//除数为0,会抛出运行时异常

}
}

java多线程分析_编译器

3、线程异常会不会影响其他线程
当我们一次创建了10个线程,其中有2个线程异常,会影响其他线程吗?答案是:在没有相互通信的情况下,是不会干扰其他线程的。
即在多线程中,线程是不会相互因为异常而产生直接干扰的。


标签:分析,run,处理,线程,java,多线程,异常
From: https://blog.51cto.com/u_15990596/6101727

相关文章

  • java观察者模式
    1、广播站packageobserver;importjava.util.Observable;//广播站publicclassRadioextendsObservable{privateStringcontent;publicvoidbroadcast(String......
  • Java_异常链
    emm其实就是异常一直抛出传递,但是最后只会显示最后一个异常,这就是异常链。   需要用到Trowable的cause属性但是除了Error、Exception和RuntimeException外,都不存......
  • JAVA多线程(四)--锁的定义
    一、乐观锁乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次拿数据时都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这......
  • fastjsonBasicDataSource链分析
    fastjsonBasicDataSource链分析(fastjson<=1.2.36)此利用链只能应用于fastjson<=1.2.36,在1.2.37版本中,直接去掉了key.toString方法。前置知识:首先我们看一下com.sun.or......
  • JAVA--关于递归
    递归概念: 方法直接或者间接的方式调用自己本身,这样的形式称为递归递归的三要素: 1、要有边界条件,也就是停止递归的条件; 2、有点像循环,需要给一个前进条件,每次......
  • 灰色预测(财政收入影响因素分析及预测)
    #-*-coding:utf-8-*-defGM11(x0):#自定义灰色预测函数importnumpyasnpx1=x0.cumsum()#1-AGO序列z1=(x1[:len(x1)-1]+x1[1:])/2.0#紧邻均值(ME......
  • 对校园外卖系统的分析和改进记录
    最近在网上找到一个校园外卖系统,我对这个项目进行了研究,但我认为这个项目可以在业务流程方面进一步优化。这是此项目的大致流程图 我认为该系统虽然比较完善,但如果上......
  • 财政收入影响因素分析及预测
    importnumpyasnpimportpandasaspdinputfile='D:\data.csv'data=pd.read_csv(inputfile)#描述性统计分析#依次计算最小值、最大值、均值、标准差description=......
  • 财政收入影响因素分析及预测
    #描述性统计分析和相关系数矩阵importpandasaspdimportnumpyasnpinputfile='D:\大三下\大数据实验课\demo\data.csv'#输入数据的文件data=pd.read_csv(inputfil......
  • Java小练习--统计字符串中字母和数字的个数
    题目统计字符串中字母和数字的个数完整代码packagetestimportjava.util.Scanner;publicclasscustomer1{publicstaticvoidmain(Stringargs[]){System.out.......