建立執行緒的方式三:實現Callable介面
建立執行緒的方式三:實現Callable介面
實現Callable介面
jdk 5.0新增
Callable介面的方式優勢:
為何實現Callable介面的方式建立多執行緒比實現Runnable介面建立多執行緒方式強大?
1.call( )可以有返回值的.
2.call( )可以丟擲異常,被外面的操作捕獲,獲取異常的資訊
3.Callable是支援泛型的.(本例中尚未提及)
程式碼
//1.建立一個實現Callable的實現類
class NumThread implements Callable{
//2.實現(重寫)call方法,將此執行緒需要執行的操作宣告在call()中. 注意:call()是可以有返回值,這一點跟run()不同
@Override
public Object call() throws Exception {
int sum=0;
for (int i = 0; i <=100 ; i++) {
if (i%2==0){
System.out.println(i);
sum+=i;
}
}
return sum;
}
}
public class ThreadNew {
public static void main(String[] args) {
//3.建立Callable介面實現類的物件
NumThread numThread = new NumThread();
//4.將此Callable介面實現類的物件作為傳遞到FutureTask構造器中,建立FutureTask的物件
FutureTask futureTask = new FutureTask(numThread);
//5.將Future Task的物件作為引數傳遞到Thread類的構造器中,建立Thread物件,並呼叫start()
new Thread(futureTask).start();//啟動執行緒
try {
//6.獲取Callable中call() 的返回值[如果不需要返回值,那麼第6步可以省略]
//get()返回值即為FutureTask構造引數Callable實現類重新的call()的返回值
Object sum = futureTask.get();
System.out.println("總和為:"+sum);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}
相關文章
- Java之實現多執行緒的方式三:實現Callable介面(結合執行緒池使用)Java執行緒
- 建立執行緒的三種方式執行緒
- Java實現多執行緒的三種方式Java執行緒
- 匿名內部類方式實現執行緒的建立執行緒
- Java建立多執行緒的幾種方式實現Java執行緒
- Java之實現多執行緒的方式二:實現Runnable介面Java執行緒
- Java併發(三)----建立執行緒的三種方式及檢視程式執行緒Java執行緒
- jdk建立執行緒的方式JDK執行緒
- Java多執行緒帶返回值的Callable介面Java執行緒
- java執行緒實現方式Java執行緒
- Java基礎:執行緒的三種建立方式Java執行緒
- Java中實現執行緒的方式Java執行緒
- 面試-實現多執行緒的方式面試執行緒
- 【Java】執行緒的建立方式Java執行緒
- 執行緒建立的四種方式執行緒
- java執行緒實現的三種方式以及靜態代理Java執行緒
- Java多執行緒實現方式Java執行緒
- 併發程式設計 建立執行緒的三種方式程式設計執行緒
- Runnable介面實現多執行緒執行緒
- 執行緒池建立方式執行緒
- 多執行緒-實現Runnable介面的方式賣電影票案例執行緒
- 使用Runnable介面實現執行緒的方法執行緒
- 多執行緒的三種實現方式及靜態代理模式執行緒模式
- java執行緒建立的兩種方式Java執行緒
- 執行緒池建立的幾種方式執行緒
- 【java】【多執行緒】建立執行緒的兩種常用方式(2)Java執行緒
- Java高併發與多執行緒(二)-----執行緒的實現方式Java執行緒
- 多執行緒-匿名內部類的方式實現多執行緒程式執行緒
- MFC多執行緒的建立,包括工作執行緒和使用者介面執行緒執行緒
- Map實現執行緒安全的3種方式執行緒
- Java建立多執行緒的四種方式Java執行緒
- java建立執行緒池的幾中方式Java執行緒
- 【Java基礎】:執行緒的三種建立方式對比分析Java執行緒
- 多執行緒-多執行緒方式1的程式碼實現執行緒
- Java多執行緒-Callable和FutureJava執行緒
- 執行緒的建立方式以及synchronize的使用執行緒
- 執行緒介紹及建立方式執行緒
- 關於多執行緒的兩種實現方式執行緒