どのように私は排他的な書き込みを達成することができますが、非排他的な読み取りですか?私はsynchronize
セッターにアクセスし、変数volatile
を作ることができますか?これで十分ですか? Java5同時APIでどのように排他的な書き込みを達成するが、非排他的な読み取り?
5
A
答えて
6
ルック:
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/locks/ReadWriteLock.html
あなたは、いくつかのスレッドがロックなしで読み書きするときにのみロックできるようにすることができますので、これはあなたの条件を達成します。ここで
読み込むときに同期の伝統を持つこのAPIを比較する興味深い記事:ReentrantReadWriteLock vs synchronized
また、@assyliasはコメントで言ったように、あなたはそれが本当に必要がない場合、ロックを避ける必要があります。
確かに、あなただけのvolatile
キーワードを信頼することができますし、両方の条件が満たされた場合にのみ:
をあなただけの状況の 制限されたセットの下で揮発性の変数の代わりに、ロックを使用することができます。次の基準の両方が、望ましいスレッドセーフティを提供するために揮発性変数に対して を満たす必要があります。
_変数への書き込みは現在の値に依存しません。
_ 変数は、他の変数を持つ不変式には参加しません。
+1
ユースケースによっては、ロックを使用する必要はなく、volatileでも十分です。 – assylias
関連する問題
- 1. SQLクエリ排他読み取り/書き込みテーブル
- 2. 読み取り、書き込み、および排他のためのロック
- 3. javaメソッドの同期と読み取り/書き込みの相互排他
- 4. は排他的
- 5. 相互排他的なチェックボックスロジック
- 6. 排他的iOS UTI
- 7. itemscontrolの相互に排他的なボタン
- 8. ハスケルエラー:関数内の非排他的パターン
- 9. linux flock(2)を排他的な排他ロック要求から守るには?
- 10. HDF5ファイルへの書き込み時に排他ロックを取得する
- 11. 相互に排他的な注釈
- 12. 相互に排他的な選択ボックス
- 13. 重畳密度、非排他的サブセット
- 14. HDFSファイルのための相互排他書き込み?
- 15. UIBarButtonItem、排他的なタッチを設定
- 16. bashの排他的な配列
- 17. pythonの相互排他的なオプショングループ
- 18. 排他的なゲートウェイの真偽ロジック -
- 19. Python - オブジェクトの排他的な属性値?
- 20. 排他的なINの使い方は?
- 21. C++による排他的論理和
- 22. Symfony 3にアクション排他的なJS/CSSを自動的に組み込みます。
- 23. 相互排他的なドラッグ/ドロップグラフイベント
- 24. 排他的完全な結合でr
- 25. 角2相互排他的なチェックボックス
- 26. NGリピート、排他的なJSON変数
- 27. 相互排他的な引数グループ?
- 28. 相互に排他的ではない変数を相互排他的な変数に再コード
- 29. jQueryセレクター:排他的OR
- 30. 相互に排他的なテーブル列を作成する方法
どのような種類の変数ですか?原子の書き込みが保証されているタイプもあります。 –
これを必要とするコードの例を表示できますか?状況によっては、変数volatileを単にマークすることもできます。 – assylias