作者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
1F:推 H45:上上篇不就和你现在说的很像了吗? 09/29 23:46
2F:推 H45:但事实上 write 的时候会修改容器属性,这必须防止其他人写入 09/29 23:48
3F:推 sbaby0416:值得一提的是 这样是可以做的 但是要考虑你读写频率 09/30 00:26
4F:→ sbaby0416:如果你写的频率很频繁 这样的作法会令你要求两次W Lock 09/30 00:29