1. 程式人生 > 實用技巧 >1-5-5 Java工具類--多執行緒

1-5-5 Java工具類--多執行緒

程序與執行緒

程序:指在系統中正在執行的一個應用程式;程式一旦執行就是程序;程序——資源分配的最小單位。
執行緒:系統分配處理器時間資源的基本單元,或者說程序之內獨立執行的一個單元執行流。執行緒——程式執行的最小單位。

建立執行緒的三種方法

1) 繼承Thread類,重寫run()方法,run()方法代表執行緒要執行的任務。

2) 實現Runnable介面,重寫run()方法,run()方法代表執行緒要執行的任務。

3) 實現callable介面,重寫call()方法,call()作為執行緒的執行體,具有返回值,並且可以對異常進行宣告和丟擲;使用start()方法來啟動執行緒

第三種方法介紹

1、 建立Callable介面的實現類,並實現call()方法,該call()方法將作為執行緒執行體,並且有返回值。

2、 建立Callable實現類的例項,使用FutureTask類來包裝Callable物件,該FutureTask物件封裝了該Callable物件的call()方法的返回值。

3、 使用FutureTask物件作為Thread物件的target建立並啟動新執行緒。

4、 呼叫FutureTask物件的get()方法來獲得子執行緒執行結束後的返回值。

例項程式碼:

1 import java.util.concurrent.Callable;
2 
3 public
class ThreeThread implements Callable<String> { 4 @Override 5 public String call() throws Exception { 6 String str = "多執行緒的第三種建立方式"; 7 return str; 8 } 9 }
 1 import java.util.concurrent.Callable;
 2 import java.util.concurrent.ExecutionException;
 3 import java.util.concurrent.FutureTask;
4 5 public class ThreeThreadTest { 6 //測試方法 7 public static void main(String[] args) { 8 Callable<String> call = new ThreeThread(); 9 FutureTask<String> ft = new FutureTask<>(call); 10 Thread t3 = new Thread(ft); 11 12 //啟動執行緒 13 t3.start(); 14 15 try { 16 System.out.println(ft.get()); 17 } catch (InterruptedException | ExecutionException e) { 18 e.printStackTrace(); 19 } 20 } 21 22 }