V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  cloudzhou  ›  全部回复第 17 页 / 共 60 页
回复总数  1193
1 ... 13  14  15  16  17  18  19  20  21  22 ... 60  
1. 存储过程
update 和返回最新值

---
2. 引入 version ,乐观锁自旋
2.1 select version;
2.2 update version=version+1 where version = {old_version}

如果 update 成功,说明 select -》 update 之间没有修改,update 成功,新旧值
如果 失败,重复 2.1-2.2 并引入随机等待

---
3. select * for update 提前加锁
然后 UPDATE Users SET Balance = Balance + {0} WHERE UserId = {1}
再次 select 得到最新值
在同一个事务
姿势不对,游泳要省力的一个秘诀,就是尽量全身在水里,依靠吸气带来自身的浮力,
也就是说,不需要太多力量维持在“上浮”这个动作,而是向前的动作

在吸气的情况下,慢慢摆动身体就可以了,想象自己是一条鱼
236 天前
回复了 meiguozhiguang 创建的主题 骑行 第一天骑行
红色大行 P8 这种车还是比较休闲的,要骑行更舒服,还是大点车好,美利达捷安特 就可以了
236 天前
回复了 meiguozhiguang 创建的主题 骑行 第一天骑行
个人记录:单日骑行 200 公里,但是太伤害膝盖了
正常消费
其实计算机术语有个名词的,可以用一下,后门 叫 Anus
244 天前
回复了 afxcn 创建的主题 Go 编程语言 使用 go 遇到的一个奇怪问题,求教
@mightybruce 这就是最大可能阿,难道不是并发问题?起码代码就不是并发安全
你是认真的吗?
244 天前
回复了 afxcn 创建的主题 Go 编程语言 使用 go 遇到的一个奇怪问题,求教
/*
* Top-level convenience functions
*/

var globalRand = New(&lockedSource{src: NewSource(1).(Source64)})
244 天前
回复了 afxcn 创建的主题 Go 编程语言 使用 go 遇到的一个奇怪问题,求教
https://pkg.go.dev/math/rand#NewSource

NewSource returns a new pseudo-random Source seeded with the given value. Unlike the default Source used by top-level functions, this source is not safe for concurrent use by multiple goroutines. The returned Source implements Source64.
@mingl0280 一致性不是一定依靠存储过程,事务做得好,也能得到同样的效果,然后就是交易强一致,其他边缘弱一致,或者说最终一致

存储过程是把所有的逻辑过程,变成 PL/SQL 脚本,甚至可以理解为代码本身了
这样的问题是,调试、开发、并发,都有很大的缺陷
很多年前维护过,确实不利于大规模迭代开发,需求快速变更等
272 天前
回复了 rockyliang 创建的主题 Go 编程语言 关于 golang 官网一段代码的疑惑
你的答案就是对的,涉及到内存同步
1 ... 13  14  15  16  17  18  19  20  21  22 ... 60  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1026 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 32ms · UTC 21:45 · PVG 05:45 · LAX 13:45 · JFK 16:45
Developed with CodeLauncher
♥ Do have faith in what you're doing.