マルチスレッドの作成スレッドの一つの方法:Callableインターフェースを実現する(三)
1454 ワード
マルチスレッドについては、よく知られていません。スレッドをどのように作成するかについても、new threadを使って、ルナブルインターフェースを実現する方法については、これ以上説明しません。このブログでは、Callableインターフェースの実現を紹介します。
記事の目次 Callableインターフェース 簡単な例 総括 Callableインターフェース
インターフェースの定義: Callableインターフェースは、Runnableと類似しており、その両方は、他のスレッドによって実行されるかもしれない種類のために設計されており、方法は戻り値を有してもよく、例外を投げることができる。でもRunnableはだめです。 Callableは、演算結果を受信するためにFutureTaskに依存する必要がある。一つは結果を生み、一つは結果を得る。FutureTaskはFutureインターフェースの実装クラスであり、閉塞としても使用できます。 簡単な例
0から100までを加算して、結果を返します。
Callableインターフェースは実はとても簡単で、マルチスレッド環境の中で、結果を返します。
次のブログでは、マルチスレッドの安全問題をどう解決するかを検討します。
記事の目次
インターフェースの定義:
@FunctionalInterface
public interface Callable {
V call() throws Exception;
}
Callableの定義から:0から100までを加算して、結果を返します。
public class TestCallable {
public static void main(String[] args) {
CallableThreadDemo ctd = new CallableThreadDemo();
//1. Callable , FutureTask ,
FutureTask result = new FutureTask(ctd);
new Thread(result).start();
//2.
try {
Integer sum = result.get(); //FutureTask
System.out.println(sum);
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
}
}
class CallableThreadDemo implements Callable{
@Override
public Integer call() throws Exception {
int sum = 0;
for (int i = 0; i <= 100; i++) {
sum += i;
}
return sum;
}
}
締め括りをつけるCallableインターフェースは実はとても簡単で、マルチスレッド環境の中で、結果を返します。
次のブログでは、マルチスレッドの安全問題をどう解決するかを検討します。