Java中如何实现j并发更新数据库同一条数据
分情况来说:普通单应用并发、多应用或多台服务器并发
情况一:普通单应用并发
使用关键字synchronized就可实现。
情况二:多应用或多台服务器并发
因多个应用之间并非同一个jvm(应用)内,因此使用synchronized并不能满足需求。
具体处理方案包含以下几种:
1)数据库行级索,优点:简单粗暴;缺点:容易死锁&性能差,非数据库专业人士不建议使用。
2)写入请求分离到一个独立应用项目中,这个实现与“情况一”一致。优点:实现技术难度低;缺点:高并发性能相对不是特别高。
3)使用分布式事务管理,该方案是目前高并发处理的最优方案。关于分布式事务管理请参考《常用的分布式事务解决方案介绍有多少种?》《深入理解分布式事务,高并发下分布式事务的解决方案》
参考:https://zhidao.baidu.com/question/2139020837540241548.html
基础才是编程人员应该深入研究的问题,比如:
1)List/Set/Map内部组成原理|区别
2)mysql索引存储结构&如何调优/b-tree特点、计算复杂度及影响复杂度的因素。。。
3)JVM运行组成与原理及调优
4)Java类加载器运行原理
5)Java中GC过程原理|使用的回收算法原理
6)Redis中hash一致性实现及与hash其他区别
7)Java多线程、线程池开发、管理Lock与Synchroined区别
8)Spring IOC/AOP 原理;加载过程的。。。
【+加关注】。