私はjava.util.concurrent.Futureがあるかどうかを示す文書を見つけようとしていますが/スレッドセーフではありません。たとえば、私はFutureの同じインスタンスに複数のスレッドを安全に与えることができます。これはすべてFuture.get(...)を呼び出しますか?java.util.concurrent.Future threadsafeですか?
私は、このように将来を使用してコードをテストしているし、正常に動作するようですが、私は将来はこのように同時アクセスのために安全であることを文書化期待を見つけることができれば、私は非常に幸せになると思います。
ありがとうございました。
このコメントは、Nizetの答えと同じです。JDK javadocでメモリーの一貫性を保証することができます。http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/package- summary.htmlに番号をpackage_description –
ですそれ安全な「未来に代表される非同期計算で撮影したアクションが起こる前に、別のスレッドでFuture.getを経由して、結果の検索に後続のアクション()。」読むために_many_他のスレッドだけでなく、他のスレッドも真です - 「別のスレッド」とは、文字通り、複数のスレッドとは対照的に、単一の**他のスレッドを示します。 Ofcでは、将来の実装者が、多くの人に壊れて1人で働くために道を離れなければならない可能性が高いので、現実には安全だと強く思っています。 – S42
はい、 'Future.get()'を呼び出すたびに "happen-before"保証が適用されるためです。各呼び出しは、1つまたはすべてのスレッドは、getの結果を待っているブロックしますhttp://en.wikipedia.org/wiki/Memory_barrier –