多執行緒-多執行緒方式3的思路及程式碼實現:方式3依賴於執行緒池存在的

ZHOU_VIP發表於2017-06-03

package cn.itcast_09;

import java.util.concurrent.Callable;

//Callable:是帶泛型的介面。
//這裡指定的泛型其實是call()方法的返回值型別。
public class MyCallable implements Callable {

	@Override
	public Object call() throws Exception {
		for (int x = 0; x < 100; x++) {
			System.out.println(Thread.currentThread().getName() + ":" + x);
		}
		return null;
	}

}


package cn.itcast_09;

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

/*
 * 多執行緒實現的方式3:
 *  	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 CallableDemo {
	public static void main(String[] args) {
		//建立執行緒池物件
		ExecutorService pool = Executors.newFixedThreadPool(2);
		
		//可以執行Runnable物件或者Callable物件代表的執行緒
		pool.submit(new MyCallable());
		pool.submit(new MyCallable());
		
		//結束
		pool.shutdown();
	}
}



相關文章