Java多執行緒2.6.執行緒組的概述與使用
阿新 • • 發佈:2018-12-10
執行緒組的概述與使用
1、執行緒組
- 執行緒組: 把多個執行緒組合到一起。
- 主要作用: 它可以對一批執行緒進行分類管理,Java允許程式直接對執行緒組進行控制。
(1)建立執行緒類
package cn.itcast_06; public class MyRunnable implements Runnable { @Override public void run() { for (int x = 0; x < 100; x++) { System.out.println(Thread.currentThread().getName() + ":" + x); } } }
(2)測試執行緒類
package cn.itcast_06; /* * 執行緒組: 把多個執行緒組合到一起。 * 它可以對一批執行緒進行分類管理,Java允許程式直接對執行緒組進行控制。 */ public class ThreadGroupDemo { public static void main(String[] args) { // method1(); // 我們如何修改執行緒所在的組呢? // 建立一個執行緒組 // 建立其他執行緒的時候,把其他執行緒的組指定為我們自己新建執行緒組 method2(); // t1.start(); // t2.start(); } private static void method2() { // ThreadGroup(String name) ThreadGroup tg = new ThreadGroup("這是一個新的組"); MyRunnable my = new MyRunnable(); // Thread(ThreadGroup group, Runnable target, String name) Thread t1 = new Thread(tg, my, "林青霞"); Thread t2 = new Thread(tg, my, "劉意"); System.out.println(t1.getThreadGroup().getName()); System.out.println(t2.getThreadGroup().getName()); //通過組名稱設定後臺執行緒,表示該組的執行緒都是後臺執行緒 tg.setDaemon(true); } private static void method1() { MyRunnable my = new MyRunnable(); Thread t1 = new Thread(my, "林青霞"); Thread t2 = new Thread(my, "劉意"); // 我不知道他們屬於那個執行緒組,我想知道,怎麼辦 // 執行緒類裡面的方法:public final ThreadGroup getThreadGroup() ThreadGroup tg1 = t1.getThreadGroup(); ThreadGroup tg2 = t2.getThreadGroup(); // 執行緒組裡面的方法:public final String getName() String name1 = tg1.getName(); String name2 = tg2.getName(); System.out.println(name1); System.out.println(name2); // 通過結果我們知道了:執行緒預設情況下屬於main執行緒組 // 通過下面的測試,你應該能夠看到,默任情況下,所有的執行緒都屬於同一個組 System.out.println(Thread.currentThread().getThreadGroup().getName()); } }
2、用到的方法
- 執行緒類裡面的方法:public final ThreadGroup getThreadGroup()
- 執行緒組裡面的方法:public final String getName()
- System.out.println(Thread.currentThread().getThreadGroup().getName());
- ThreadGroup(String name)
- Thread(ThreadGroup group, Runnable target, String name)
- 通過組名稱設定後臺執行緒,表示該組的執行緒都是後臺執行緒:tg.setDaemon(true);