タグ

2013年4月5日のブックマーク (1件)

  • blog lesson 01 - マルチスレッドプログラミングのFutureパターン

    マルチスレッドプログラミングのパターンの一つにFutureパターンというものがある。 これは、ある処理を別スレッドで非同期に実行させて、その結果を受けたいときに用いられるパターンである。 特徴的なのは、処理の実行担当者(JavaではExecutorServiceがそれにあたる)は、処理(JavaではCallable)が渡されると別スレッド上で処理を開始して、メインスレッドには即座にFutureオブジェクトを返すことである。 なぜこのオブジェクトがFutureと呼ばれるかというと、今現在はまだ結果を取得できないが、将来のある時点で取得することになるからである。 その後、Futureのget()メソッドを呼ぶと、メインスレッドはCallableの処理が終わるまでブロックされる。 そして別スレッドで処理が終わった時点で結果が取得できる。 プログラム例を以下に示す。 public sta