[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 01/06 12:55 / Filesize : 277 KB / Number-of Response : 985
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者】Java質問・相談スレッド115【歓迎】



265 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 01:39:06 ]
>>262
やっぱり理解不足。
putもgetもsynchronized (myMap) { } にしておく、が正解。
getだからといってつけないと、痛い目にあう(ヒント:Atomic性)

>Map の実装を ConcurrentHashMap にする
正しいといえば正しい。
だけど、並行処理で品質を高めるには1箇所で必要最低限の同期を取るのがポイント。

例えばMapとなにか別の要素もあわせて同期を取りたいとする。
すると、Mapで同期をとってさらにラップクラスで同期を調整して・・・と複雑になる。
そんな場合は同期を取るクラスは1箇所にしたほうが楽。
また、全てのメソッドを同期を取る必要があるか?という点も重要。

とはいえ、そのような要素がなければ簡単に実現できるConcurrentHashMap を使うのは正しい(シンプルこそ正義)。


予断だが、外部にさらしてもmap = null では何の影響もないぞw
map.clear() 等はマズイのでオシマイには変わらないけど。






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<277KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef