Redian新闻
>
database 的线程安全操作
avatar
database 的线程安全操作# Java - 爪哇娇娃
f*s
1
【 以下文字转载自 I485 讨论区 】
发信人: fishingdays (阳光明媚的一天去钓鱼), 信区: I485
标 题: eb2: 老公能否用我的priority date 交485?
发信站: BBS 未名空间站 (Tue Mar 30 11:31:25 2010, 美东)
我08年工作,申請eb2的priority date 是08年10月。現在我可能要辭職(或找個不
sponsor綠卡的工作),老公今年3月才開始申請綠卡(也是eb2),他的priority date
是10年3月。我想問問這裡的大蝦:如果我辭職或找個不sponsor綠卡的工作,老公能不
能用我的priority date為我們一起申請綠卡。非常感謝!
avatar
b*u
2
是个面试题。问一个账号,两个线程,一个+50 dollar, 一个加100 dollar.
如何保证在数据库上的结果是正确的。
我理解是用CAS的概念去解决这个问题。但对方要我写相关的SQL 语句, 并且详细解释
low-level级的操作。(e.g. Update BankAccount set balance=150 where...)
这应该是一个常见的问题。我对数据库的transaction了解很少。想请教大家,最好给
一点相关链接。
avatar
i*e
3
律师说不行
avatar
g*g
4
update account set balance = balance + ? where account_id = ?
Transaction is guarded by write lock on the row. So 2 threads won't do it at
the same time.

【在 b****u 的大作中提到】
: 是个面试题。问一个账号,两个线程,一个+50 dollar, 一个加100 dollar.
: 如何保证在数据库上的结果是正确的。
: 我理解是用CAS的概念去解决这个问题。但对方要我写相关的SQL 语句, 并且详细解释
: low-level级的操作。(e.g. Update BankAccount set balance=150 where...)
: 这应该是一个常见的问题。我对数据库的transaction了解很少。想请教大家,最好给
: 一点相关链接。

avatar
p*2
5
SQL没有类似Mongo incr这样的东西吗?
avatar
T*g
6
他想问的是transaction isolation level。
假设同时有Transaction T1, T2试图读取并修改相同的row,ANSI定义了好像有四种,
1) read_uncommitted Trasaction T1修改但是没有commit的data会被同时进行的T2读
取,这个叫dirty_read
2) read_committed 只有在事务提交后,才会对另一个事务产生影响,并且在对表进行
修改时,会对表数据行加上行共享锁
3)repeatable_read T2始终读取的值在T2的范围内不会改变
4)serializable 完全串行
具体这上面四种隔离模式在不同的数据库里是不大一样的。我比较熟悉MYSQL,MYSQL的
2,4都可以保证你说的情况。

【在 b****u 的大作中提到】
: 是个面试题。问一个账号,两个线程,一个+50 dollar, 一个加100 dollar.
: 如何保证在数据库上的结果是正确的。
: 我理解是用CAS的概念去解决这个问题。但对方要我写相关的SQL 语句, 并且详细解释
: low-level级的操作。(e.g. Update BankAccount set balance=150 where...)
: 这应该是一个常见的问题。我对数据库的transaction了解很少。想请教大家,最好给
: 一点相关链接。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。