美文网首页
Java 线程的停止

Java 线程的停止

作者: 任教主来也 | 来源:发表于2017-02-07 15:16 被阅读60次

使用退出标志位来终止线程

使用一个变量来控制循环,每次循环时都判断该变量的值

使用 interrupt 方法停止

线程非阻塞状态,直接调用 intercept 会将中断标志位置为 true ,再循环是使用 isInterrupted 方法获取该标志位,如果为 true 则结束循环。

线程在阻塞状态时,调用 interrupt 函数会抛出 InterruptedException ,需要捕获该异常,并在异常中 break 跳出循环。抛出异常时会把中断标志位的 true 置为 false,所以不能使用 isIntercepted 来判断,需要在异常中跳出。

使用时阻塞非阻塞要同时考虑

public class ThreadSafe extends Thread {  
    public void run() {   
        while (!isInterrupted()){ //非阻塞过程中通过判断中断标志来退出  
            try{  
                Thread.sleep(5*1000);//阻塞过程捕获中断异常来退出  
            }catch(InterruptedException e){  
                e.printStackTrace();  
                break;//捕获到异常之后,执行break跳出循环。  
            }  
        }  
    }   
}

使用 stop 方法

该方法是强制终止,会释放该线程持有的所有锁,破坏数据,所以不推荐使用这种方式

相关文章

  • 如何正确的中断线程?你的姿势是否正确

    Java停止线程的逻辑(协同、通知) 在Java程序中,我们想要停止一个线程可以通过interrupt方法进行停止...

  • Java多线程(二)

    Java多线程(二) 上一篇“Java多线程(一)”主要讨论的是线程的创建,本章主要讨论停止线程。 1.概述 停止...

  • java多线程--Callable

    **移步[java多线程系列文章]Java多线程(二十二)---LockSupport工具Java 停止线程 一、...

  • java并发之守护线程

    java中有两种线程,用户线程和守护线程用户线程:主线程停止时,用户线程不会停止守护线程:主线程停止时,守护线程也...

  • 总结多线程与设计模式+synchronized+性能+高吞吐+死

    Java线程 Java语言的线程 何谓线程 线程启动 线程的暂时停止 线程的共享互斥 线程的协调 线程的状态转移 ...

  • 简易线程池实现

    ThreadPool.java PThread.java--永不停止的线程,用于配合线程池 Mythread.ja...

  • 停止及中断运行的线程

    停止线程的方式 在 Java 中停止线程的方式有三种:1、线程的 run 方法执行到最后,线程正常结束并退出;2、...

  • Java 停止线程

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

  • Java——停止线程

    用共享变量的方式 在这种方式中,之所以引入共享变量,是因为该变量可以被多个执行相同任务的线程用来作为是否中断的信号...

  • Java 线程的停止

    使用退出标志位来终止线程 使用一个变量来控制循环,每次循环时都判断该变量的值 使用 interrupt 方法停止 ...

网友评论

      本文标题:Java 线程的停止

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