作者easy1 (e :) y)
站內java
標題[問題] ReadWriteLock 用在map上的每個field
時間Sat Sep 29 19:59:26 2007
(最進有不少cocurrency的問題f@@)
後來想想我的問題主要還是在read/write sync 上
在網路上找找 發現
java.util.concurrent.locks.ReentrantReadWriteLock
可以很方便的作到read-write lock (應該比自己寫安全,又比synchronized有彈性用)
但是我在網路上看到的範例都是把ReadWriteLock 用在整個map上
(可同時讀, 但write是絕對exclusive)
我異想天開說
那可不可以把map裡每個field(key-value pair) 都指定一個個別的ReadWriteLock
這樣在write某一個field時 就不會block住其他field的讀寫...
每個field又可以作到read write sync
(當然先決條件是每個field都絕對沒有關係)
只是不知道這樣實不實際 有提升效率嗎 還是太多lock object會有問題
不知道有人有類似的經驗 或有什麼見解嗎
"理論上"看起來不錯 還沒有測試過...
--
PLUR
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ 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