
并发编程
小小小程序员2019
应用架构师
展开
-
利用锁和CAS算法:解决并发下数据库的一致性问题(事务)
背景 最近有一个场景遇到了数据库的并发问题。现在先由我来抽象一下,去掉不必要的繁杂业务。 数据库表book存储着每本书的阅读量,一开始数据库是空的,不存在任何的数据。当用户访问接口的时候,判断表book是否存在此书的记录,如果不存在,即插入一条新记录,而且阅读量设置为1;当下个用户再阅读此书时,再调用接口就直接将此书的阅读量增加1,而不用再插入新记录。 并发下出现的问题 下面看一...转载 2019-12-05 16:46:28 · 513 阅读 · 0 评论 -
Java中的双重检查锁(double checked locking)以及双重检查锁的缺陷
在实现单例模式时,如果未考虑多线程的情况,就容易写出下面的错误代码: public class Singleton { private static Singleton uniqueSingleton; private Singleton() { } public Singleton getInstance() { if (null == u...转载 2019-10-12 14:01:43 · 386 阅读 · 0 评论