![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 77
bkc002
这个作者很懒,什么都没留下…
展开
-
Java线程安全之volatile关键字
一、前言我们知道在多线程的场景下,线程安全是必须要着重考虑的。Java语言包含两种内在的同步机制:同步块(synchronize关键字)和 volatile 变量。但是其中 Volatile 变量虽然使用简单,有时候开销也比较低,但是同时它的同步性较差,而且其使用也更容易出错。下面我们先使用一个例子来展示下volatile有可能出现线程不安全的情况:public class ShareD...转载 2018-07-12 19:06:10 · 164 阅读 · 0 评论 -
java多线程 ThreadPoolExecutor 策略及坑
无论是使用jdk的线程池ThreadPoolExecutor 还是spring的线程池ThreadPoolTaskExecutor 都会使用到一个阻塞队列来进行存储线程任务。 当线程不够用时,则将后续的任务暂存到 阻塞队列中,等待有空闲线程来进行。 当这个阻塞队列满了的时候,会出现两种情况 正在运行的线程数量小于 maximumPoolSize,那么还是要创建线程运行这个任务...转载 2018-10-12 17:35:50 · 1073 阅读 · 2 评论 -
Spring事务传播机制
Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播,即协调已经有事务标识的方法之间的发生调用时的事务上下文的规则(是否要有独立的事务隔离级别和锁)概述 当我们调用一个基于Spring的Service接口方法(如UserService#addUser())时...原创 2018-12-18 15:18:23 · 1154 阅读 · 0 评论 -
AOP切入同类调用方法不起作用,AopContext.currentProxy()帮帮你解决
今天翻看公司之前代码时,无意中看到了如下一段代码:(UserService)AopContext.currentProxy()).getWechatInfo() 心里在想,好好的方法为啥不通过this.getWechatInfo()调用,而是通过AopContext.currentProxy()这个aop方式调用,于是乎一顿查找,并了解到:当在Service中定义了一个方法并且...原创 2019-01-11 17:01:45 · 9315 阅读 · 5 评论