摘要: Spring AOP是Spring为AOP(面向切面编程)提供支持的一种框架,也是Spring核心框架之一,那么Spring是如何实现对AOP的支持的,其功能又是如何实现的,本文将尝试从Spring AOP开始往后倒推,解密Spring AOP背后的秘密 1. 从一个简单的Spring AOP De 阅读全文
posted @ 2020-07-20 18:00 三弦音无 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 在上篇博客中,我尝试通过一个简单的Demo介绍了一下线程池的构造参数和工作过程,这一篇博客则会继续探讨一下在使用线程池过程中可能遇到的问题。 1.线程池使用时需要遵守的规范 在阿里的Java的开发手册中对于线程池的使用用如下几条规范 【强制】创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。 阅读全文
posted @ 2020-07-13 19:39 三弦音无 阅读(418) 评论(0) 推荐(0) 编辑
摘要: 什么是线程池 使用线程池的原因 众所周知,线程是一种比较昂贵的资源,其主要的开销有以下几个方面 线程的创建与启动的开销(与普通的对象相比,Java线程会占用额外的存储空间--栈空间) 线程销毁的开销 线程调度的开销(如上下文切换的开销) 因此,对于线程这种代价比较昂贵的资源,需要使用一种合理的方式去 阅读全文
posted @ 2020-07-10 17:12 三弦音无 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 1.锁定的使用不符合业务逻辑 首先如果加的锁与业务逻辑不匹配,那么加的锁显然难以起到作用的 @Slf4j public class InterestingDemo { volatile int a = 1; volatile int b = 1; public synchronized void a 阅读全文
posted @ 2020-07-09 20:28 三弦音无 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 所谓的并发工具类库就是用来解决多线程环境下的并发问题的工具类库,一般分为同步器和容器两大类,比如 容器:ConcurrentHashMap、 ConcurrentSkipListMap、 CopyOnWriteArrayList、ConcurrentSkipListSet等 同步器:CountDow 阅读全文
posted @ 2020-07-08 19:48 三弦音无 阅读(424) 评论(0) 推荐(1) 编辑
摘要: 最近在学习多线程编程的时候知道了HashMap是线程不安全的,而ConcurrentHashMap是线程安全的,所以在多线程并发的情况下应该使用ConcurrentHashMap来确保线程安全。话虽这么说,而然耳听为虚,眼见为实,如果不能通过代码复现一下HashMap在多线程条件下失效的场景,很难直 阅读全文
posted @ 2020-07-08 16:52 三弦音无 阅读(704) 评论(0) 推荐(0) 编辑
摘要: Spring声明式事务可能出现的问题 在日常的Spring项目开发中,一般都是在方法上通过使用@Transactional注解来声明事务,从而保证方法内多个对数据库的操作的一致性和原子性。但是使用@Transactional注解时如果不稍加注意就有可能出现事务不生效以及出错后事务不回滚等问题。接下来 阅读全文
posted @ 2020-07-07 18:14 三弦音无 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 多线程条件下如何正确实现单例模式 单例模式是最为广泛使用的一种设计模式,其主要的目的就是保持一个类只有一个实例,其在单线程条件下实现比较简单,然而在多线程条件下,如何能够正确实现单例模式则需要对多线程的锁以及volatile关键字有所了解,接下来希望通过在多线程条件下实现单例模式来学习多线程的基础知 阅读全文
posted @ 2020-07-06 22:18 三弦音无 阅读(318) 评论(0) 推荐(0) 编辑