1. 程式人生 > >多執行緒:Callable

多執行緒:Callable

Callable介面提供一個call()方法可以作為執行緒執行體。與run()方法不同的是:
call()方法具有返回值!還可以宣告異常!

 

建立並啟動有返回值的執行緒步驟如下:

1)建立Callable的實現類,並實現call()方法。JAVA8開始可以使用lambda函式建立callable物件。

FutureTask<Integer> task = new FutureTask<Integer>((Callable<Integer>()->{

      int i = 0;
      for(;i<10;i++){
       
           //do something.
       }
       return i;
});

2) 使用Future介面的實現類FutureTask來封裝Callable物件,可以通過這個類來獲得callable物件的返回值。

3)使用FutureTask物件作為Thread物件的Target建立並啟動執行緒

new Thread(task).start();

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

task.get();