2021-04-18 15:53  阅读(76)
文章分类:Java 基础实战 文章标签:JavaJava 教程
©  原文作者:w3cschool 原文地址:https://www.w3cschool.cn/java/java-examples.html

Java中原来在Thread中提供了stop()方法来终止线程,但这个方法是不安全的,所以一般不建议使用。

本文向大家介绍使用interrupt方法中断线程。

使用interrupt方法来终端线程可分为两种情况:

  • (1)线程处于阻塞状态,如使用了sleep方法。
  • (2)使用while(!isInterrupted()){……}来判断线程是否被中断。

在第一种情况下使用interrupt方法,sleep方法将抛出一个InterruptedException例外,而在第二种情况下线程将直接退出。下面的代码演示了在第一种情况下使用interrupt方法。

    /*
     author by w3cschool.cn
     ThreadInterrupt.java
     */
    
    public class ThreadInterrupt extends Thread 
    { 
        public void run() 
        { 
            try 
            { 
                sleep(50000);  // 延迟50秒 
            } 
            catch (InterruptedException e) 
            { 
                System.out.println(e.getMessage()); 
            } 
        } 
        public static void main(String[] args) throws Exception 
        { 
            Thread thread = new ThreadInterrupt(); 
            thread.start(); 
            System.out.println("在50秒之内按任意键中断线程!"); 
            System.in.read(); 
            thread.interrupt(); 
            thread.join(); 
            System.out.println("线程已经退出!"); 
        } 
    } 
    

以上代码运行输出结果为:

    在50秒之内按任意键中断线程!
    
    sleep interrupted
    线程已经退出!
    
点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> Java 实例 – 终止线程
上一篇
Java 实例 – 线程挂起
下一篇
Java 实例 – 获取 URL响应头的日期信息