- java使用ThreadGroup来处理表示线程组,它可以对线程进行分类,分批地处理,对线程组地控制相当于同时控制这些线程
- 默认情况下,子线程和创建它地线程处于同一个线程组
- java规定不可以中途改变线程所属的线程组,所以在线程会一直属于创建的时候指定的线程组
- 以下为代码示例,具体的讲解穿插在代码中
class MyThread extends Thread{ public MyThread(String name){ super(name); } public MyThread(ThreadGroup group, String name){ super(group, name); } public void run(){ for(int i=0; i<20 ; i++){ System.out.println(getName() + "线程的i变量" + i); } } } public class ThreadGroupTest { public static void main(String args[]){ ThreadGroup mainGroup = Thread.currentThread().getThreadGroup(); // 得到当前线程所属的线程组 System.out.println("主线程的名字: " + mainGroup.getName()); // 得到线程组的名字 System.out.println("主线程组是否是后台线程组: " + mainGroup.isDaemon()); // 判断线程组是否是后台线程组 new MyThread("主线程组的线程").start(); // 在main线程组中创建一个新的线程 ThreadGroup threadGroup = new ThreadGroup("新线程组"); // 新建一个线程组 threadGroup.setDaemon(true); // 将新建的线程组设置为后台线程组 System.out.println("threadGroup是否是后台线程组: " + threadGroup.isDaemon()); MyThread tt= new MyThread(threadGroup, "threadGroup组的线程甲"); // 新建一个线程,并且指定它所属的线程组是新建的线程组 tt.start(); new MyThread(threadGroup, "threadGroup组的线程乙").start(); } }
java多线程(12)线程组
