test1里面s.lock(act, LockMode.UPGRADE);锁住后,test2就一直\等待,等test1释放锁后才继续执行的
s.lock(act, LockMode.UPGRADE_NOWAIT);test2就不等待直接抛出异常了楼猪哪个校区的?
s.lock(act, LockMode.UPGRADE_NOWAIT);test2就不等待直接抛出异常了楼猪哪个校区的?
解决方案 »
- 初级菜鸟想问问大虾们对软件测试岗位的看法
- java 处理excel
- jQuery 学习技巧
- 关于XML读取问题: 通过XSD读取XML时, 对 xsi:nil="true" 的tab, 如何才能获取到null值
- 紧急请教一个关于regular expression的问题~~~~~~~~~~~~~~~~~~~
- jsf 与数组问题
- 大家帮忙啊~~~~~急~~~~~~~~急死活人!
- javamail同步大量邮件时,同步到一半,报连接超时
- ICE接口的waitForShutdown 导致Tomcat 45 秒 启动失败,求大神赐招
- javaee 判断用户状态值是否为true,数据库status值是1但是user.isStatus取出来都是false.
- mysql更新数据出现异常
- (向mrtsing提问)请问你有spring+struts+hibernate的用户管理系统
test2中加test1中加了session.lock(act,LockMode.UPGRADE)也没有任何影响。但是修改成:LockMode.UPGRADE_NOWAIT后,就会报错:不能锁NOWAIT
而我的本意是想在test1操作期间不允许其他代码进行操作。现在仍然不知道如何加锁。
按我的理解,应该是在test1中的加锁才对呀。现在怎么要在test2中加锁才会有效?不明白了。
会有一定的效果.
当test1加锁,test2不加锁,最后的结果为只执行了test2的效果.
test1,test2都加了锁,最后的结果是取一1000,存一1000.结果不变;
test1不加锁,test2加锁.最后的结果为执行test1结果.为什么test1加上了锁(UPGFADE),test2还能访问?锁只能锁事务提交的顺序,并不能锁数据(不让其他进程访问该数据).因为有其他数据访问这个数据,就会出现并发的问题.假如能把数据锁住,就不需要在其他进程中加锁了.
现在我都不理解锁的机制了.