您现在的位置:首页 --> 查看专题: 原子字典
一个需求:一个玩家数据的写入者,可以批量修改他的属性。但是,同时可能有其他线程在读这个玩家的数据(通过共享内存)。这可能造成,读方得到了不完整的数据。 我们可以不在乎读方得到某个时间的旧数据,但不可以读到一份不完整的版本。就是说,对玩家数据的修改,需要成组的修改,每组修改必须是原子的。 起先,我想用读写锁来解决这个问题。方案想好了,一直没有实现。只是把读写锁的基本功能实现了。 这几天这个问题被重提出来。因为,前段我们都采用了鸵鸟政策,当问题不存在(事实上我们也没有发现实际中出现可观测到的问题)。 反正探讨了好几个解决方案,一开始都是围绕怎么加锁,锁的粒度有多大来展开的。甚至,我们把其中的一种方案都实现出来了,并写了压力测试程序测试。不过,这些方案都不太令人满意。
[ 共1篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
-
[83] memory prefetch浅析
-
[55] 转载:cassandra读写性能原理分析
-
[52] 深入浅出cassandra 4 数据一致性问
-
[50] 基本排序算法的PHP实现
-
[45] 字符引用和空白字符
-
[41] MySQL半同步存在的问题
-
[41] 获取Dom元素的X/Y坐标
-
[41] Inline Form Labels
-
[41] JS中如何判断字符串类型的数字
-
[40] javascript插入样式
赞助商广告