java多執行緒系列01——多執行緒基礎
阿新 • • 發佈:2019-02-11
import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; public class NewThreadDemo { public static void main(String[] args) throws InterruptedException, ExecutionException { Thread t1 = new Thread(){//第一種方式 @Override public void run() { System.out.println("new Thread 1"); } };//建立執行緒 t1.start();//啟動執行緒 // System.out.println(t1.getName()); Thread t2 = new Thread(new Runnable() {//第二種方式 @Override public void run() { System.out.println("new Thread 2"); } }); t2.start(); //重要方法:Thread.currentThread() //System.out.println(Thread.currentThread().getName()); //第三種方式 FutureTask<String> ft = new FutureTask<String>(new Callable<String>() { @Override public String call() throws Exception { System.out.println("new Thread 3"); return "aaaa"; } }); Thread t3 = new Thread(ft); t3.start(); String result = ft.get(); System.out.println(result); } }
【總結】
建立執行緒的方式:
1.繼承Thread類,並複寫run方法,建立該類物件,呼叫start方法開啟執行緒。
2.實現Runnable介面,複寫run方法,建立Thread類物件,講Runnable子類物件傳遞給Thread類物件。呼叫start方法開啟執行緒。
第二種方式好,將執行緒物件和執行緒任務物件分離開。降低了耦合性,利於維護
3.建立FutureTask物件,建立Callable子類物件,複寫call(相當於run)方法,將其傳遞給FutureTask物件(相當於一個Runnable)。
建立Thread類物件,將FutureTask物件傳遞給Thread物件。呼叫start方法開啟執行緒。這種方式可以獲得執行緒執行完之後的返回值。