Java ThreadGroup interrupt()方法与示例

ThreadGroup类interrupt()方法

  • java.lang包中提供了interrupt()方法

  • interrupt()方法用于停止该线程组中的所有线程。

  • interrupt()方法是一个非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。

  • 在中断该线程组中的线程时,interrupt()方法可能会引发异常。

语法:

    public final void interrupt();

参数:

  • 它不接受任何参数。

返回值:

此方法的返回类型为void –不返回任何内容。

示例

//Java程序演示示例 
//ThreadGroup的void interrupt()方法 

public class Interrupt implements Runnable {
    public static void main(String[] args) {
        Interrupt in = new Interrupt(); in .interrupted();
    }

    public void interrupted() {
        //创建两个线程组,命名为base-
        //并派生

        ThreadGroup base = new ThreadGroup("Base ThreadGroup");
        ThreadGroup derived = new ThreadGroup(base, "Derived ThreadGroup");

        //创建两个线程
        Thread th1 = new Thread(base, this);
        Thread th2 = new Thread(derived, this);

        //通过使用getName()方法是检索
        //线程名称th1-
        System.out.println(th1.getName() + " " + "begins.....");

        //通过使用start()方法是开始执行 
        //线程th1-
        th1.start();

        //通过使用getName()方法是检索
        //线程名称th2-
        System.out.println(th2.getName() + " " + "begins.....");


        //通过使用start()方法是开始执行 
        //线程th2-
        th2.start();

        try {
            th1.interrupt();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    //覆盖run()
    public void run() {
        try {
            Thread.sleep(1000);
            System.out.println("We will wait till another thread execution");
        } catch (Exception ex) {
            System.out.println("Thread interrupted :" + ex.getMessage());
        }
    }

}

输出结果

Thread-0 begins.....
Thread-1 begins.....
Thread interrupted :sleep interrupted
We will wait till another thread execution