异常与多线程

简介: 异常与多线程

异常本身是个类,产生异常就是异常创建异常对象并抛出,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()返回当前正在执行的线程对象引用


相关文章
|
7月前
|
安全 Java 开发者
丢失的8小时去哪里了?SimpleDateFormat线程不安全,多线程初始化异常解决方案
丢失的8小时去哪里了?SimpleDateFormat线程不安全,多线程初始化异常解决方案
108 0
|
2月前
线程CPU异常定位分析
【10月更文挑战第3天】 开发过程中会出现一些CPU异常升高的问题,想要定位到具体的位置就需要一系列的分析,记录一些分析手段。
77 0
|
2月前
|
监控 Java
在实际应用中选择线程异常捕获方法的考量
【10月更文挑战第15天】选择最适合的线程异常捕获方法需要综合考虑多种因素。没有一种方法是绝对最优的,需要根据具体情况进行权衡和选择。在实际应用中,还需要不断地实践和总结经验,以提高异常处理的效果和程序的稳定性。
27 3
|
2月前
|
监控 Java
捕获线程执行异常的多种方法
【10月更文挑战第15天】捕获线程执行异常的方法多种多样,每种方法都有其特点和适用场景。在实际开发中,需要根据具体情况选择合适的方法或结合多种方法来实现全面有效的线程异常捕获。这有助于提高程序的健壮性和稳定性,减少因线程异常带来的潜在风险。
28 1
|
2月前
|
监控 API
Hook 线程与捕获线程执行异常
【10月更文挑战第11天】Hook 线程和捕获线程执行异常是多线程编程中不可或缺的技术。通过深入理解和掌握这些方法,我们可以提高程序的稳定性和可靠性,更好地应对各种异常情况。同时,在实际应用中要注意平衡性能和准确性,制定合理的异常处理策略,以确保程序的正常运行。
35 1
|
3月前
|
消息中间件 前端开发 NoSQL
面试官:线程池遇到未处理的异常会崩溃吗?
面试官:线程池遇到未处理的异常会崩溃吗?
82 3
面试官:线程池遇到未处理的异常会崩溃吗?
|
3月前
|
监控 Java
线程池中线程异常后:销毁还是复用?技术深度剖析
在并发编程中,线程池作为一种高效利用系统资源的工具,被广泛用于处理大量并发任务。然而,当线程池中的线程在执行任务时遇到异常,如何妥善处理这些异常线程成为了一个值得深入探讨的话题。本文将围绕“线程池中线程异常后:销毁还是复用?”这一主题,分享一些实践经验和理论思考。
153 3
|
4月前
|
Java 数据库连接 数据库
当线程中发生异常时的情况分析
【8月更文挑战第22天】
123 4
|
4月前
|
Java
线程池中线程抛了异常,该如何处理?
【8月更文挑战第27天】在Java多线程编程中,线程池(ThreadPool)是一种常用的并发处理工具,它能够有效地管理线程的生命周期,提高资源利用率,并简化并发编程的复杂性。然而,当线程池中的线程在执行任务时抛出异常,如果不妥善处理,这些异常可能会导致程序出现未预料的行为,甚至崩溃。因此,了解并掌握线程池异常处理机制至关重要。
500 0