同一线程组下的线程,一个线程的异常会影响其他线程运行么?

测试demo:

public class Test {
    static class MyThread extends Thread {
        private String number;

        public MyThread(ThreadGroup group, String name, String number) {
            super(group, name);
            this.number = number;
        }

        @Override
        public void run() {
            //这步类型转换是要故意制造异常
            int num = Integer.parseInt(number);
            while (true) {
                System.out.println(Thread.currentThread().getName() + "正在运行");
            }
        }
    }

    public static void main(String[] args) {
        ThreadGroup threadGroup = new ThreadGroup("我的线程组");
        //制造一个异常线程
        new MyThread(threadGroup, "异常线程", "a").start();
        for (int i = 1; i <= 3; i++) {
            new MyThread(threadGroup, "线程" + i, "6").start();
        }
    }
}

运行结果如下:
在这里插入图片描述

从运行结果可以发现,即使抛出了类型转换异常,同一线程组内的其他线程一样能够成功运行。

总结

同一线程组下的线程,一个线程出现异常不会影响其他线程的运行。

猜你喜欢

转载自blog.csdn.net/weixin_38106322/article/details/107822340