タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

Java8とtipsとJavaに関するnaga_sawaのブックマーク (5)

  • CompletableFutureの使い方の基本形とFutureTaskとの連携例 - seraphyの日記

    Java8から利用可能になったCompluteableFutureとは、他言語におけるDeferredとかPromiseパターンといわれるものと同等のものであり、これにより並列処理を直列的に記述できるようになる。(つまり超便利。) 基的な使い方 もっとも簡単な使い方としては、CompletableFutureが用意している静的コンビニエンスメソッドであるrunAsyncか、supplyAsyncを使う。 たとえば、以下のようなものになる。 1つのタスクの完了後に処理を継続する例 ExecutorService es = Executors.newCachedThreadPool(); ... CompletableFuture<String> cf = CompletableFuture.supplyAsync(() -> heavyWork("job1"), es); cf.whenC

    CompletableFutureの使い方の基本形とFutureTaskとの連携例 - seraphyの日記
    naga_sawa
    naga_sawa 2018/03/22
    CompletableFuture を使った非同期処理機構
  • Java8のCompletableFuture調査 - Qiita

    Javaで複雑なスレッド処理 Javaには当初からThreadクラスがあるが、インスタンス生成が重くて微妙だった。 JDK5からはExecutorが導入されて、WorkerThread的なことはやりやすくなったし、Lock系のクラスも増えて便利になった。また、Futureの導入により処理結果を受け取るのも楽になった。 とはいえ、Future.get()を呼ぶと呼び出しThreadがブロックするからそれもまた別Threadでやって、というようになんか質的じゃない処理を書かないといけなかったのも確か。 Java8からはCompletableFutureが導入され、より複雑なThread処理を行うことができるようになったようなので、調査をする。 前提知識 同じくJava8で導入されたFunction, Consumer, Supplierを理解していないとよく分からないと思う。以下に記事書いた

    Java8のCompletableFuture調査 - Qiita
    naga_sawa
    naga_sawa 2018/03/22
    CompletableFuture を使った非同期処理機構
  • CompletableFutureのキャンセル動作 - yohhoyの日記

    Java8で追加されたjava.util.concurrent.CompletableFutureクラスとキャンセル動作について。 CompletableFuture#cancelメソッドは、実行中の非同期処理に割り込み(interrupt)キャンセルしない。 該当CompletableFutureが未完了の場合、CancellationException例外送出で例外完了となる。(完了済みの処理ステージには作用しない) CompletableFutureに継続処理が存在する場合、キャンセル動作は後続の処理ステージ*1にのみ作用する。 メソッドチェイン形式で記述している場合、処理チェイン全体が自動的にキャンセルされる訳では無いことに注意。 // 非同期処理チェイン CompletableFuture<V> future = CompletableFuture. .supplyAsync((

    CompletableFutureのキャンセル動作 - yohhoyの日記
    naga_sawa
    naga_sawa 2017/05/01
    CompletableFuture#cancel は紐付いているタスクにinterruptしない/うまく実装しておかないとスレッド握りっぱなしになるかも
  • java.util.concurrent.CompletableFutureクラス - yohhoyの日記

    Java8で追加された java.util.concurrent.CompletableFuture*1 クラスについてメモ。CompletionStage, Futureの両インタフェースを実装するクラス。 Executorsフレームワーク(Java5以降)およびFork/Joinフレームワーク(Java7以降)の上で、Futureパターン*2により合成可能な非同期/同期処理を実装するためのユーティリティクラス。類似のFutureTaskクラスは単なる同期プリミティブに過ぎないが、CompletableFutureクラスは独立した1つのフレームワークともいえる機能を提供する。 CompletableFuture<T>オブジェクトは、戻り値がT型オブジェクトまたは任意の例外送出の処理結果を表す。*3(Futureインタフェース) 実処理体としてRunnable(T=Void)、またはSu

    java.util.concurrent.CompletableFutureクラス - yohhoyの日記
    naga_sawa
    naga_sawa 2017/05/01
    CompletableFuture のメソッド分類
  • (o1, o2) -> o1 - o2 なんて呪文はもうやめて! - Java8でのComparatorの使い方 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    (o1, o2) -> o1 - o2 なんて呪文はもうやめて! - Java8でのComparatorの使い方 - Qiita
    naga_sawa
    naga_sawa 2016/08/24
    Java8以降ではデフォルトで用意されている Comparator が容易に使える
  • 1