線程組表示一個線程的集合。此外,線程組也可以包含其他線程組
線程池(某個線程執行完畢,反覆利用線程對象)
所有的線程它默認的線程組名稱:main(主線程)
常用方法:
public ThreadGroup(String name)構造一個新線程組
public Thread(ThreadGroup group, Runnable target, String name) 構造新的線程
public final ThreadGroup getThreadGroup()返回該線程所屬的線程組
public final String getName():返回線程組的名稱
線程池:多個線程執行完畢,它會重新回到線程池中,等待被利用,不會變成垃圾!
和線程池有關的類
Executors: 一種工廠類
方法:和線程池的創建有關係
public static ExecutorService newFixedThreadPool(int nThreads) 創建一個可重用固定線程數的線程池
ExecutorService:可以執行異步任務
創建一個線程池,執行接口中的方法
提交:Future<?> submit(Runnable task)
<T> Future<T> submit(Callable<T> task)提交一個返回值的任務用於執行,返回一個表示任務的未決結果的 Future
Future:接口
Future 表示異步計算的結果
線程池調用完畢可以關閉的
void shutdown():關閉之前,會提交剛纔的任務
public class ExecutorsTest {
public static void main(String[] args) throws InterruptedException, ExecutionException {
ExecutorService pool=Executors.newFixedThreadPool(2);
Future<Integer> f1=pool.submit( new MyCallable(100));
Future<Integer> f2 = pool.submit(new MyCallable(100));
Integer i1 = f1.get();
Integer i2 = f2.get();
System.out.println(i1);
System.out.println(i2);
pool.shutdown();
}
}