Wesley13 Wesley13
4年前
Java 深入理解volatile关键字
我们知道Java中volatile实现了修饰变量的原子性以及可见性,并且为了实现多线程环境下的线程安全,禁止了指令重排。首先我们先来了解一下happensbefore原则、asifserial语义以及数据依赖性,引用自《Java并发编程的艺术》happensbefore简介从JDK5开始,Java使用新的JSR133内存模型
Wesley13 Wesley13
4年前
MySQL5.7 基础之二
设计范式:  第一范式:字段是原子性  第二范式:存在可用主键  第三范式:任何表都不应该有依赖于其它表非主键的字段创建数据库、设计数据表  字段:字段名、数据类型、约束(通过键来实现,而键其实可以当做索引来用)DDL:CREATE、DROP、ALTERDML:INSERT(REPLACE)、DELETE、UPDATE、SELE
Wesley13 Wesley13
4年前
操作Redis
redis也是一个数据库,它的存储以keyvalue的方式存放,比如:!(https://oscimg.oschina.net/oscnet/65ce59c339672e02554ab5db30f1611ad41.png)a.关系型数据库比如:  mysql、oracle、sqlserver、db2、sqlite数据库,
Wesley13 Wesley13
4年前
Java的AQS
!(https://oscimg.oschina.net/oscnet/d87ee0244e37f312627f0d76446d7d6efc0.jpg)简介AQS是AbstractQueuedSynchronizer的简称。AQS提供了一种实现阻塞锁和一系列依赖FIFO等待队列的同步器的框架,为一系列同步器依赖于一个单独的原子变量(
Wesley13 Wesley13
4年前
Java关于volatile的一些问题
1\.开始仔细说volatile是一个复杂的问题,可以从Java内存模型聊到缓存一致性协议,很难界定学到什么地方为止。很多时候,我们并不需要那么复杂,我们需要更加实用。所以,下面我们就来聊聊volatitle在实际开发中的问题。2\.并发编程中的三个重要概念1.原子性:是指一
Wesley13 Wesley13
4年前
ABA问题的本质及其解决办法
点击上方的蓝字关注我吧_程序那些事_简介CAS的全称是compareandswap,它是java同步类的基础,java.util.concurrent中的同步类基本上都是使用CAS来实现其原子性的。CAS的原理其实很简单,为了保证在多线程环境下我们的更新是符合预期的,或者说一个线程在更新某个对象的时
Wesley13 Wesley13
4年前
mysql 解决超卖问题的锁分析
  解决超卖问题,常见的方式,利用redis的原子性去递减;利用队列,队列入队计数。或者直接打到mysql层。由mysql保证不超卖,有几个玩法。利用属性不一样,挺有意思,记录下。该文章后续仍在不断的更新修改中,请移步到原文地址http://www.dmwan.cc/?p139&previewtrue(https://www.
事务的ACID,隔离级别,脏读,幻读和不可重复读
事务的ACID原子性(atomicity)一个事务中执行的sql语句,要么全部成功,要么全部失败,不可能一部分成功。一致性(consistency)事务执行前和执行后数据一致,也就是说事务中的sql语句不能只执行一部分。这种请款一般发生在事务异常中断,服