分2分情况:
一.普通的单应用并发,使用关键字synchronized就可以实现。
二.多应用或多台并发,这时在由于2者并非同一应用,使用synchronized并不能满足要求。此时,有下面几种方案:
数据库行级锁,优点是简单粗暴,缺点是容易死锁,非数据库专业人事建议不使用。
写入请求分离成一个独立项目,这就回到了第一种情况,优点是实现技术难度低,缺点是高并发性能相对不是很高。
使用分布式事务管理,这个是目前高并发处理的最优方案了。
最后要说的没有差的方案,每个方案都有其适用环境,请根据自身需求选择对应方案。
一方面,有SessionTimeout另一方面,如果是Hibernate,有数据版本问题,Hibernate检查到DB版本更新,不让保存的。JDBC写也可以学习这个做法,用一个FIELD做版本,新增时是1,每次修改递增。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)