之前我们讲了通过数据库事务来保证扣库存的一致性,但这势必会造成TPS降低,那么我们有办法提高整体的TPS吗?库存分片就是一个不错的解决方案。什么是库存分片?简单来说就是把原来...
之前我们讲了通过数据库事务来保证扣库存的一致性,但这势必会造成TPS降低,那么我们有办法提高整体的TPS吗?库存分片就是一个不错的解决方案。什么是库存分片?简单来说就是把原来...
相信大家都听过缓存一致性,随便百度一下就有各种文章,无非就是更新数据库和缓存的先后顺序及策略。一般有3种方案:先更新数据库再更新缓存;先删除缓存再更新数据库;先更新数据库再删...
ReentrantReadWriteLock中有2个对象ReadLock,WriteLock分别都有lock函数:readlock.lock() readerShouldBl...
读写锁概念:写锁排他,读锁共享。 tryReadLock: 上面可以看到除了和写锁互斥以外,读锁之间并不互斥。所以除了开始判断有没有写锁,之后一路顺畅。
人一生中最重要的两天就是出生那天和发现人生目标的那天。(The two most important days in your life are the day you we...
先贴下大神关于sync关键字wait函数的帖子:https://blog.csdn.net/java_lyvee/article/details/110996764[http...
signal和signalAll大同小异,本节我们来看下signal函数,signal核心调用的是doSignal,所以signal函数就不贴了:
Condition条件锁,当线程获得锁之后,可以在指定的Condition上等待或被唤醒核心函数await: 下一节将signal,await要结合signal一起看可能更清楚
线程使用的时候经常会看到IllegalMonitorStateException异常,那么Monitor究竟是什么当对象被实例化的时候,jvm会给该对象生成一个ObjectM...
释放锁的核心函数release: tryRelease比较简单,比较state的值是否减到0
reentrantlock中有lockInterruptibly函数,表示可响应中断,之前讲的lock是不会响应中断的: lockInterruptibly核心函数: doA...
node是AQS队列节点对象,其实node的源码没什么好解析的,本节看下node的数据结构以及入队出队其实作者对于node的结构在注解里说的很清晰了: 大概画了下node过程...
之前的acquire函数会先调用tryAcquire去尝试获得锁,这个在每个具体类中实现,这里看ReentrantLock中2个实现。公平锁FairSync中: 非公平锁中:
先看之前的代码: 之前说过当node获取到锁后会跳出死循环,然后会进入fianlly中,当failed为true时进入cancelAcquire,看代码,除了初始化的时候其实...
上一节的acquireQueued(addWaiter(Node.EXCLUSIVE), arg))函数中有一个addWaiter函数,表示将当前线程加入到排队队列中 读完这...
加锁的底层调用acquire函数:tryAcquire由具体实现类实现,本节看acquireQueued函数 该函数表示将已经在队列中的node(每个线程对应一个node加到...
IDEA 2019.3JDK1.8Gradle 4.10.3Spring-framework-5.1.x编译报错 解决方案: 网上查的资料应该是idea2019的bug
楼主有没有碰到过这问题:<ij_msg_gr>Project resolve errors<ij_msg_gr><ij_nav>/Users/jiabinhao/Work/Repository/spring-framework/build.gradle<ij_nav><i><b>root project 'spring': Unable to resolve additional project configuration.</b><eol>Details: java.lang.IllegalStateException: Resolving dependency configuration 'testFixturesCompileOnly' is not allowed as it is defined as 'canBeResolved=false'.<eol>Instead, a resolvable ('canBeResolved=true') dependency configuration that extends 'testFixturesCompileOnly' should be resolved.</i>
Idea构建Spring问题解决软件 Idea 2020.1 Jdk 1.8 gradle-5.5.1 问题一 Idea和Spring Kotlin版本不一致解决方法 查看IEDA kotlin版本imag...
最近在撸快排,发现网上写的千篇一律,理论定义的步骤和代码稍有些区别,所以按我自己理解的在整理一遍首先抄一下网上的定义和模拟图: 从数列中挑出一个元素,称为 “基准”(pivo...
什么是中台? 我自己理解,中台就是对相同业务,技术,模型,数据的抽象整合,对外提供统一的能力,并能让后续工作者能在此基础上快速迭代。关键词有几个,“整合”,“统一能力“。社会...