1. 程式人生 > >從執行緒中產生返回值--Callable介面

從執行緒中產生返回值--Callable介面

Runnable是執行工作的獨立執行緒,但是它不返回任何值。如果你希望執行緒在完成時能夠返回一個值,那麼可以實現Callable介面而不是Runnable介面。在Java SE5中引入的Callable是一種具有型別引數的泛型,它的型別引數表示的是從方法call()(而不是run())中返回的值,並且必須使用ExecutorService.submit()方法呼叫它。

執行緒程式碼:

public class ResulttThread implements Callable<String> {

    private int id;

    public ResulttThread(int
id) { this.id = id; } @Override public String call() throws Exception { return "The result id is " + id; } }

呼叫程式碼:

 Future<String> future;
 ExecutorService mService = Executors.newCachedThreadPool();
    for (int i = 0; i < 5; i++) {
       future = mService.submit(new
ResulttThread(i)); System.out.println(future.get()); }

執行結果:

這裡寫圖片描述