タグ

javaとマルチスレッドに関するe24nsのブックマーク (2)

  • Facebook、マルチスレッドのコードを静的解析してデータ競合を検出する「RacerD」、オープンソースで公開。同社Androidアプリのリリース前に1000以上の問題を検出

    Facebookは、Javaのコードを静的に解析してマルチスレッドプログラミングで発生するデータ競合のバグを発見するツール「RacerD」をオープンソースでリリースした。 アプリケーションのレスポンスを改善するうえで、マルチスレッド化は重要な選択肢のひとつです。 その一方で、マルチスレッドのアプリケーションは十分に注意深くプログラミングしないと、変数の値が予期しないタイミングでほかのスレッドから書き換えられるなどの問題が紛れ込みやすいものです。 しかもマルチスレッドに起因する問題は再現が難しく、一般に発見するのが困難です。 RacerDリリース:Facebookで1000以上ものバグを発見 Facebookは、こうしたデータ競合の問題を、コードを静的解析することで発見し、警告してくれるツール「RacerD」をオープンソースで公開しました。 Facebookの説明によると、RacerDはロッ

    Facebook、マルチスレッドのコードを静的解析してデータ競合を検出する「RacerD」、オープンソースで公開。同社Androidアプリのリリース前に1000以上の問題を検出
  • Effective Java 読書会 11 日目 「Java マルチスレッド難しいいい」 - IT戦記

    はじめに 順番が前後しますが、都合上「並行性」の章を先に書きたいと思います。 読んだところ 251 ページ 〜 268 ページ 前回はこちら Effective Java 読書会 10 日目 「Java の基テクニック集」 - IT戦記 同期とは何か 同期 = 原子性 + 可視性 原子性(アトミック性) データの状態遷移の過渡的な不整合な状態が(どのスレッドからも)見えないという性質。 適切に相互排他することでデータの原子性を保証できる。(保護されたコードを実行できるスレッドは一つだけ。) 可視性(ビジビリティ) (どのスレッドからも)同じ値が見えるという性質。 普通、変数やフィールドの値はスレッドごとにキャッシュ(レジスタなど)されるなどしていて、スレッド間での同値性は保証されない。 同期するというのは、原子性を保証することだけではなく、可視性も保証することだということを忘れてはいけな

    Effective Java 読書会 11 日目 「Java マルチスレッド難しいいい」 - IT戦記
  • 1