java学习笔记----多线程 简单实现代码以及线程的中断

为什么要使用多线程?

    1.同时执行多个任务

    2.执行某一复杂任务时需要进行其他操作

    

在单独线程中执行一个任务的简单方法:

 1.构建一个实现了Runnable接口的类:

class MyRunnable implements Runnable{
public void run(){
    //在这里写任务代码
}
}

2.创建一个该类的实例:

Runnable r =new MyRunnable();

3.由Runnable创建一个Thread对象:

Thread t = new Thread(r);

4.启动线程:

t.start();

不需要实现Runnable接口的实现方法:

class MyThread extends Thread{
    public void run(){
        //任务代码
}
}

注意:

调用Thread或Runnable对象的run方法时只会执行同一个线程中的任务而不会启动新线程。

线程的中断:

stop和suspend已经被弃用。

线程的中断状态:每个线程具有一个这样的boolean标志,用来表示该线程是否被中断,每个线程应该不时的检查该状态以判断线程是否被中断。

使用interrupt方法请求终止线程,该方法会将中断状态置位

判断当前线程的中断线程是否被置位:

while(!Thread.currentThread().isInterrupted()){
    //Thread.currentThread()用以获得当前线程
}

当线程被阻塞时,无法检测中断状态,会产生InterruptedException异常

如果在中断状态被置位时调用sleep方法,它不会休眠。相反,它将清楚这一状态并抛出InterruptedException

注意:

不要忽视该异常,可以通过捕捉到异常后中断该线程或者干脆变成抛出该异常(throws)而不是使用catch

参考:《java核心技术Ⅰ》

猜你喜欢

转载自blog.csdn.net/weixin_42486701/article/details/93408333