ThreadGroup(线程组)
线程组 主要用 对一批线程进行管理,如中断(interrupt)/暂停(suspend)/恢复(resume)/终止(stop)等操作;
线程组 中 也可以有其它线程组;
默认情况下, 新的线程都会被加入到main线程所在的 线程组;
public static void main(String[] args) throws InterruptedException {
ThreadGroup threadGroupA = new ThreadGroup("线程组A");
Runnable runnable = ()->{
try {
System.out.println(Thread.currentThread().getName()+" start");
TimeUnit.SECONDS.sleep(10);
System.out.println(Thread.currentThread().getName()+" end");
} catch (InterruptedException e) {
e.printStackTrace();
}
};
for (int i = 0; i < 3; i++) {
Thread t = new Thread(threadGroupA,runnable);
t.setName(String.valueOf(i));
t.start();
}
TimeUnit.SECONDS.sleep(1);
threadGroupA.interrupt(); //停止threadGroupA中所有的线程
}
0 start
1 start
2 start
java.lang.InterruptedException: sleep interrupted
at java.lang.Thread.sleep(Native Method)
at java.lang.Thread.sleep(Thread.java:340)
at java.util.concurrent.TimeUnit.sleep(TimeUnit.java:386)
at com.zy.springboot_mybatis.test.juc.daemon.DaemonDemo.lambda$main$0(DaemonDemo.java:13)
at java.lang.Thread.run(Thread.java:748)
java.lang.InterruptedException: sleep interrupted
at java.lang.Thread.sleep(Native Method)
at java.lang.Thread.sleep(Thread.java:340)
at java.util.concurrent.TimeUnit.sleep(TimeUnit.java:386)
at com.zy.springboot_mybatis.test.juc.daemon.DaemonDemo.lambda$main$0(DaemonDemo.java:13)
at java.lang.Thread.run(Thread.java:748)
java.lang.InterruptedException: sleep interrupted
at java.lang.Thread.sleep(Native Method)
at java.lang.Thread.sleep(Thread.java:340)
at java.util.concurrent.TimeUnit.sleep(TimeUnit.java:386)
at com.zy.springboot_mybatis.test.juc.daemon.DaemonDemo.lambda$main$0(DaemonDemo.java:13)
at java.lang.Thread.run(Thread.java:748)