美文网首页
2020-04-14-线程终止的方法

2020-04-14-线程终止的方法

作者: 耿望 | 来源:发表于2020-04-14 15:41 被阅读0次

Thread

1. 使用终止标志位

public class MThread extends Thread {

    private volatile AtomicBoolean alive;

    public MThread(String name) {
        super(name);
        alive = new AtomicBoolean(true);
    }

    public void terminate() {
        alive.set(false);
    }

    @Override
    public void run() {
        while (alive.get()) {
            //do something
        }
    }
} 

2. 使用中断

    @Override
    public void run() {
        try {
            while (true) {
                //do something
                if (isInterrupted()) {
                    throw new InterruptedException();
                }
            }
        } catch (InterruptedException e) {
            
        }
    }
}

HandlerThread

HandlerThread实际上类似上面的第一种方式,是使用标志位的方法来退出循环。
之前分析过looper中有一个for循环不断从消息队列中取出消息,没有消息的情况下通过epoll_wait阻塞。
当调用了quit方法之后,消息队列会返回null,从而退出循环。需要注意的是,这个时候未触发的消息是不会再触发的。

相关文章

  • 2020-04-14-线程终止的方法

    Thread 1. 使用终止标志位 2. 使用中断 HandlerThread HandlerThread实际上类...

  • 多线程(三)

    线程终止 1.run方法正常退出,线程自然终止2.因为一个没有捕获的异常终止了run方法,线程意外终止 线程中断 ...

  • 线程池(3)终止线程池原理

    终止线程池 一、终止线程池方法 1、 shutdown() 安全的终止线程池 2、 shutdownNow() 强...

  • 【多线程】——4.安全的终止线程

    安全的终止线程 线程正常执行结束,就会终止 除了正常结束外,还有什么方法终止? 设置线程终止标志 public c...

  • 多线程系列09-线程终止与线程中断

    线程终止:在Thread类中JDK给我们提供了一个终止线程的方法stop(); 该方法一经调用就会立即终止该线程,...

  • 安全的终止线程

    安全的终止线程 如果想终止线程最好不要使用 stop 方法,因为 stop 方法在终结一个线程时不会保证线程的资源...

  • 多线程之中断线程

    1、 java中没有可以强制线程终止的方法。但是存在interrupt方法用来请求终止线程。当对一个线程调用int...

  • Java 停止线程

    1概述 在Java中有以下3种方法可以终止正在运行的线程: 1)当run方法完成后线程终止。 2)使用stop方法...

  • 线程

    join方法加入线程方法 interrupt终止线程 yield礼让方法 暂不介绍啦,因为具体要看CPU 线程设置...

  • 线程的停止

    在Java中有以下3中方法可以终止正在运行的线程: 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止...

网友评论

      本文标题:2020-04-14-线程终止的方法

      本文链接:https://www.haomeiwen.com/subject/ktqtvhtx.html