多进程之间锁的问题

2011-12-04 14:21:49 +08:00
 guoxx_
关于多进程锁有什么比较成熟的方案没有?
被多进程访问数据库操作搞得头疼,相关经验也不足,求助..
4288 次点击
所在节点    问与答
6 条回复
yelusiku
2011-12-04 14:28:16 +08:00
文件锁
lijia18
2011-12-04 15:45:11 +08:00
查询外的操作数据库会自动锁吧
Ricepig
2011-12-04 16:12:03 +08:00
数据库自己有行锁表锁,依靠数据库或者自己还可以乐观锁悲观锁。多进程自己还可以通过操作系统提供的互斥锁,临界区。或者极端一点通过CAS原语。
guoxx_
2011-12-04 20:05:24 +08:00
逻辑是这样得
1 进程A读取数据库数据X
2 进程B读取数据库数据X
3 进程A更新数据为X+1
4 进程B更新数据为X+2
希望得结果肯定是X += 3

希望能够得到一些指导性的意见
madeye
2011-12-04 20:44:26 +08:00
@guoxx_ 只要保证对 X 的一对读写是原子操作就行了,比如:[1 3] [2 4] 。
从 Atomicity Violation 的定义来看就是不能出现:RWR, RWW, WRW(R) 这几种情况。
Ricepig
2011-12-04 20:47:21 +08:00
@guoxx_ 搜索“乐观锁“,”悲观锁“

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/22758

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX