多執行緒-執行緒池的概述和使用

ZHOU_VIP發表於2017-06-03

package cn.itcast_08;

public class MyRunnable implements Runnable {

	@Override
	public void run() {
		for (int x = 0; x < 100; x++) {
			System.out.println(Thread.currentThread().getName() + ":" + x);
		}
	}

}


package cn.itcast_08;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/*
 * 執行緒池的好處:執行緒池裡的每一個執行緒程式碼結束後,並不會死亡,而是再次回到執行緒池中成為空閒狀態,等待下一個物件來使用。
 * 
 * 如何實現執行緒的程式碼呢?
 * 		A:建立一個執行緒池物件,控制要建立幾個執行緒物件。
 * 			public static ExecutorService newFixedThreadPool(int nThreads)
 * 		B:這種執行緒池的執行緒可以執行:
 * 			可以執行Runnable物件或者Callable物件代表的執行緒
 * 			做一個類實現Runnable介面。
 * 		C:呼叫如下方法即可
 * 			Future<?> submit(Runnable task)
 *			<T> Future<T> submit(Callable<T> task)
 *		D:我就要結束,可以嗎?
 *			可以。
 */
public class ExecutorsDemo {
	public static void main(String[] args) {
		// 建立一個執行緒池物件,控制要建立幾個執行緒物件。
		// public static ExecutorService newFixedThreadPool(int nThreads)
		ExecutorService pool = Executors.newFixedThreadPool(2);

		// 可以執行Runnable物件或者Callable物件代表的執行緒
		pool.submit(new MyRunnable());
		pool.submit(new MyRunnable());

		//結束執行緒池
		pool.shutdown();
	}
}



相關文章