Re: [問題] ReadWriteLock 用在map上的每個field

看板java作者 (e :) y)時間18年前 (2007/09/30 03:35), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
※ 引述《adrianshum (Alien)》之銘言: : ※ 引述《easy1 (e :) y)》之銘言: : 沒有什麼異想天開的,我記憶中我有做過類似的東西. : 當然一般來說不會搞這些麻煩東西 XDD 嗯 結果你印象中 這樣的做法"划算"嗎 效能有不錯嗎 (還有畢竟我沒寫過這種concurent程式..:-( ) 如果讀/寫比例不會差太多的時候 : : -- : : ◆ From: 79.210.96.247 : : 推 H45:上上篇不就和你現在說的很像了嗎? 09/29 23:46 : : 推 H45:但事實上 write 的時候會修改容器屬性,這必須防止其他人寫入 09/29 23:48 : : 推 sbaby0416:值得一提的是 這樣是可以做的 但是要考慮你讀寫頻率 09/30 00:26 : : → sbaby0416:如果你寫的頻率很頻繁 這樣的作法會令你要求兩次W Lock 09/30 00:29 : 不會兩次 W lock. : 一般來說的做法是,要新加入 entry, 才會acquire map 的 W lock. : (新加入 entry 也不需取新 entry 的 W lock 哪) : 修改現有的 entry 的話則只取 map read lock, 然後取 entry write lock. : Alien 嗯 我也這麼想 我現在想法是用 ConcurrentHashmap 搭配 map w/r lock 和 各各 entry 的 r/w lock (ConcurrentHashmap支援同時更改map結構) 我的需求大概是 讀/寫比 = 1.5 ~ 2 , entry 數量四位數.. 如果簡單一點用 HashMap 加只有一個 map w/r lock (有write 就lock整張map) 看起來程式比較好寫 效能會差很多嗎...XD -- 感覺現在比較清楚了 感謝 這裡是一篇找到的討論文章 http://forum.java.sun.com/thread.jspa?threadID=5114887 也有人作出很瘋狂的事..每個object都一個lock (應該有改善法) 但順帶一提是jdk6 Lock 跟5 不太一樣了 -- PLUR -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 79.210.70.115 ※ 編輯: easy1 來自: 79.210.70.115 (09/30 04:13) ※ 編輯: easy1 來自: 79.210.70.115 (09/30 04:14)
文章代碼(AID): #16_ga0s2 (java)
討論串 (同標題文章)
文章代碼(AID): #16_ga0s2 (java)