Java多執行緒2.8.執行緒池2
阿新 • • 發佈:2018-12-10
執行緒池
1、實現Callable介面來實現執行緒池
- Callable:是帶泛型的介面。
- 這裡指定的泛型其實是call()方法的返回值型別。
(1)建立實現Callable類的執行緒類
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; } }
(2)測試執行緒類
package cn.itcast_09; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; 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(); } }
2、 多執行緒實現的方式3
- 方式1:繼承Thread類
- 方式2:實現Runnable介面
- 方式3:實現Callable介面
/* * 多執行緒實現的方式3: * A:建立一個執行緒池物件,控制要建立幾個執行緒物件。 * public static ExecutorService newFixedThreadPool(int nThreads) * B:這種執行緒池的執行緒可以執行: * 可以執行Runnable物件或者Callable物件代表的執行緒 * 做一個類實現Runnable介面。做一個類實現Callable介面。 * C:呼叫如下方法