多執行緒(一)執行緒建立的三種方式
阿新 • • 發佈:2019-01-12
建立執行緒的三種方式:
1.第一種方式繼承Thread類,重寫Thread類中的run方法,還需要呼叫start方法,start方法相當於通知CPU,執行緒已經就緒,CPU在合適的時間點呼叫該執行緒的run方法;我們程式中的main方法,我們稱之為主執行緒。
2.建立執行緒的第二種方式,實現Runnable介面,並重寫run方法,建立例項之後,將該例項包裝成Thread例項,繼續呼叫start方法讓執行緒就緒,因為Runnable是一個函式式介面,因此可以通過Lambda表示式,進行Runnable例項的建立;
3.建立執行緒的第三種方式,實現Callable,重寫該介面的call方法,call方法不同於run方法,run方法沒有返回值,而call
方法有返回值;
第一步:建立Callable例項,重寫call方法
第二步:將Callable例項傳入FutureTask構造器中,得到FutureTask例項
第三步:建立Thread例項,將FutureTask例項傳入Thread構造器中,再讓執行緒就緒
public class Test implements Callable<String>{
@Override
public String call() throws Exception {
String str = "test";
// TODO Auto-generated method stub
return str;
}
public static void main(String[] args) {
Test test = new Test();
FutureTask<String> futureTask = new FutureTask<>(test);
Thread thread = new Thread(futureTask);
thread.start();
}
}