异常与多线程

简介: 异常与多线程

异常本身是个类,产生异常就是异常创建异常对象并抛出,java处理异常的方式是中断处理

异常并不是语法错误

异常类:Throwable 有两个子类 Error(工程师不能处理,只能尽量避免) Exception(由于使用不当导致,可避免)


多线程

并发:指两个事务在同一个世家段发生 交替执行

并行:指两个或多个事务在同一个时刻发生 同时执行

进程:进程是程序的一次执行过程,系统运行一个程序即是一个进程从创建到消亡的过程

线程:负责当前进程中程序的执行,一个进程中至少有一个线程,一个进程中可以有多个线程

Thread类 基本线程

先定义Thread子类对象,先继承Thread类 再重写Thread类中的run方法设置线程

使用步骤:

创建Thread类的子类

在Thread类的子类中重写Thread类中的run方法,设置线程任务(开启线程之后要做什么)

创建Thread类的子类对象

调用Thread类中的方法Start方法,开启新的线程执行run方法

public class Ahu extends Thread {
    public void run(){        
    }
}


构造方法

public Thread() 分配一个新的线程对象

public Thread(String name) 分配一个指定名字的线程对象

public Thread(Runnable target) 分配一个带有指定目标的新线程对象

public Thread(Runnable target,String name) 分配一个带有指定目标的新的线程对象并带有指定名字

常用方法

public String geyName() 获取当前线程名称

public class Ahu extends Thread {
    public void run(){
       String name = getName();
       System.out.println(name);
    }
}
public void run(){
   System.out.println(Thread.currentThread().getName());
}
public class Dome011 {
    public static void main(String[] args) {
        Ahu ahu = new Ahu();
        ahu.run();
        ahu.start();
        System.out.println(Thread.currentThread().getName());
    }
}


public void start() 导致此线程开始执行JAVA虚拟机调用此线程的run方法

public void run() 此线程要执行的任务在此处定义代码

public static void sleep(long millis) 使用当前正执行的线程已制定毫秒暂停(暂时停止执行)

public static Thread currentThread()返回当前正在执行的线程对象引用


相关文章
|
2月前
|
安全 Java 开发者
丢失的8小时去哪里了?SimpleDateFormat线程不安全,多线程初始化异常解决方案
丢失的8小时去哪里了?SimpleDateFormat线程不安全,多线程初始化异常解决方案
52 0
|
2月前
|
运维 负载均衡 Java
nacos常见问题之单机nacos2.2.3线程池异常如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
|
2月前
|
C++
C++多线程场景中的变量提前释放导致栈内存异常
C++多线程场景中的变量提前释放导致栈内存异常
35 0
|
2月前
|
Java
java 主线程破获子线程异常
java 主线程破获子线程异常
51 0
|
8月前
|
Java
[java进阶]——多线程Thread类,处理并发异常的方法(下)
[java进阶]——多线程Thread类,处理并发异常的方法
|
8月前
|
Java 调度
[java进阶]——多线程Thread类,处理并发异常的方法(上
[java进阶]——多线程Thread类,处理并发异常的方法
线程池内运行的线程抛异常,线程池会怎么办
线程池内运行的线程抛异常,线程池会怎么办
|
11月前
|
Java
Java多线程:捕获线程异常
你处理过多线程中的异常吗?如何捕获多线程中发生的异常?捕获子线程的异常与捕获当前线程的异常一样简单吗?
如何处理JDK线程池内线程执行异常?讲得这么通俗,别还搞不懂
本篇 《如何处理 JDK 线程池内线程执行异常》 这篇文章适合哪些小伙伴阅读呢? 适合工作中使用线程池却不知异常的处理流程,以及不知如何正确处理抛出的异常
|
存储 Java
高并发编程-捕获线程运行时的异常 + 获取调用链
高并发编程-捕获线程运行时的异常 + 获取调用链
75 0