2012-02-29 16 views
1

私は、データがJava内の複数のスレッドによってアクセスまたは共有されているときを調査しています。これらの問題を解決するソリューションは、このことから 同じデータを共有/アクセスする複数のスレッドの問題

飢餓

    • ねじ干渉
    • メモリの一貫性
    • デッドロック
    • :とのような問題に探して。

      これまで私がこれらの問題を解決しているように見えるのは、同期方法を使用することです。 同期方法を使用する他の方法がありますか? 私はこの情報のほとんどをSunのJavaチュートリアルから見つけました。 さらなる読書のためのアドバイスはありますか?

  • +0

    トピックをオフにstackoverflowします。 FAQをお読みください。多分、プログラマーのスタック交換はあなたがこれを投稿したいところです。 –

    +0

    +1ホバークラフトのコメント – Toby

    答えて

    3

    可能であれば、データを読み取り専用(不変)にしておくか、一般的なアドバイスとしてスレッドローカルにコピーしてください。

    Javaでは、データの同期を避ける必要がある場合に使用するカウンタ(AtomicIntegerAtomicLongなど)とコレクション(java.util.concurrent.*)のいくつかの特別な非ブロッキング実装があります。

    「効果的なJava」(Joshua Bloch)または「Javaの同時実行性」をお勧めします。

    +0

    上記の書籍のうちの1つしか入手できない場合はどうすればよいでしょうか?効果的なJavaまたはJavaの同時実行性 – NightWolf

    +1

    _Effective Java_は、よく整備されたコードを書く方法に関する**一般**の本です。また、Javaのいくつかの落とし穴を回避するのに役立ちます。 _Javaの同時実行性は、同時実行性とそのトピックの詳細な調査に特化しています。 私はちょうど地元の書店に行き、自分のニーズに合ったものを探すことを提案します。あるいは、書籍の索引を見て、トピックの概要を知ることができます。[JCIP](http://jcip.net/contents.html)、[EJ](http://java.sun.com/docs /books/effective/toc.html) – Benjamin

    関連する問題