摘要: 小伙伴都知道通过Executors静态类可以直接创建4种类型的线程池, 但读过阿里巴巴开发手册的童鞋一定见过这句话: 强烈不建议直接使用Executors静态类来创建线程池!!! 这是为啥呢? 原因如下: 1:FixedThreadPool 和 SingleThreadPool: 允许的请求队列(底 阅读全文
posted @ 2021-07-16 23:05 Sherlock先生 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 1. @Transactional 控制事务 @Transactional是一种基于注解管理事务的方式,spring通过动态代理的方式为目标方法实现事务管理的增强。 用过Spring声明式事务的童鞋应该都知道@transactional这个注解,我们在接口, 类, 或者方法上使用@transacti 阅读全文
posted @ 2021-07-16 22:32 Sherlock先生 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 一. 悲观锁、乐观锁 1、悲观锁认为共享资源并发操作一定会出现问题,使用synchronized关键字或者lock接口特性加锁; 2、乐观锁认为不加锁给并发操作带来性能提升,常采用CAS(Compare比较 And Swap交换)自旋锁;典例就是并发原子类,通过CAS自旋来更新值 二. 公平锁、非公 阅读全文
posted @ 2021-07-16 21:56 Sherlock先生 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 一.什么是锁 数据库的锁是为了对共享资源进行并发访问,提供数据的完整性和一致性,这样才能保证在高并发场景下,访问数据库时,数据不会出现问题. 二.锁机制 1.按锁的粒度划分:行级锁、表级锁、页级锁、间隙锁 MyISAM和MEMORY采用表级锁(table-level locking) InnoDB支 阅读全文
posted @ 2021-07-16 14:29 Sherlock先生 阅读(60) 评论(0) 推荐(0) 编辑