我要实现这样一个功能,比如数据库里插入数据时,后一个人必须等待前一个人操作完成后才能进行。或者java中有一个方法,在任何时刻只能有一个人在调用执行该方法。请各位大侠讲讲实现的思路和原理(最好不要用synchronizied)谢谢!
解决方案 »
- 关于org.apache.commons.net.ftp.FTPClient的retrieveFile函数
- MyEclipse 5.5.1 GA 使用的快捷键
- struts2拦截器问题
- 系统中基础信息库的处理
- 推荐一个自带1.5jre的开源浏览器,精简后的jre只有3m,超精悍
- struts2的中文编码问题。。昨天下载可用分都换资源分了。。各位NR帮个忙了
- 创建多个struts-config.xml文件无效??
- 请问学这些东西只可以编网页吗,程序行不?
- 求数据库物理设计和用户角色设计文档
- 100分~各位在struts是怎么处理数据库处理错误的
- Java 如何获取网管地址,和网段
- ajax返回值问题?
1中处理完成后调用notify()wait(),nofity()都是Object的成员方法,所有java类都支持
只有一个数据库的话,操作之前先对表加悲观锁。
多个数据库怎么锁表怎么多线程也没用。
ps:用sync,如果存在多个应用服务器连同一个数据库,还是锁不了。所以建议锁表。
简单讲:就是在数据库中增加一个代表版本的字段(可以是版本号,或者时间戳,或兼而有之),在更新前读取数据的时候,顺便把版本通过页面hidden字段或者其他方式保留下来,进行更新操作的时候,先select,比较版本是否一致,然后再更新数据,并更新版本号。