- 博客(12)
- 收藏
- 关注
原创 AQS执行逻辑
1、假设有线程去获取公平锁FairLock,线程去执行lock()方法:if (!tryAcquire(arg) &&acquireQueued(addWaiter(Node.EXCLUSIVE), arg))selfInterrupt();2、tryAcquire(1)代码的含义:如果state为0(锁没有被线程占用)或者独占线程是当前线程时,获取锁成功,并且更改独占线程...
2019-12-13 16:55:48
124
原创 线程池执行顺序
线程池提交任务时的执行顺序如下:向线程池提交任务时,会首先判断线程池中的线程数是否大于设置的核心线程数,如果不大于,就创建一个核心线程来执行任务。如果大于核心线程数,就会判断缓冲队列是否满了,如果没有满,则放入队列,等待线程空闲时执行任务。如果队列已经满了,则判断是否达到了线程池设置的最大线程数,如果没有达到,就创建新线程来执行任务。如果已经达到了最大线程数,则执行指定的拒绝策略。 p...
2019-12-11 09:39:08
4669
转载 [Java 并发编程] 集合框架之 同步容器类 & 并发容器类
通过上一篇文章,我们已经知道设计一个线程安全类的原则和步骤,以及在设计过程中我们应当注意的细节。实际上,Java 的集合库包含了线程安全集合和非线程安全集合,可以说 Java 的线程安全集合库就是按照前一篇说到的实例封闭、安全性的委托、组合这几个方式来实现的。这篇主要简单介绍 Java 集合库包含哪些常用的容器类,它们可以简单区分为:非同步集合同步集合并发集合那么,它们分别包括哪些具...
2019-10-08 15:02:55
90
转载 Mybatis执行流程分析
最近太忙了,一直没时间继续更新博客,今天忙里偷闲继续我的Mybatis学习之旅。在前九篇中,介绍了mybatis的配置以及使用, 那么本篇将走进mybatis的源码,分析mybatis 的执行流程, 好啦,鄙人不喜欢口水话,还是直接上干活吧:1. SqlSessionFactory 与 SqlSession. 通过前面的章节对于mybatis 的介绍及使用,大家都能体会到SqlSe...
2019-10-08 14:51:44
97
转载 Java线程工作内存与主内存变量交换过程及volatile关键字理解
Java线程工作内存与主内存变量交换过程及volatile关键字理解1. Java内存模型规定在多线程情况下,线程操作主内存变量,需要通过线程独有的工作内存拷贝主内存变量副本来进行。此处的所谓内存模型要区别于通常所说的虚拟机堆模型:2. 线程独有的工作内存和进程内存(主内存)之间通过8中原子操作来实现,如下图所示:原子操作的规则(部分):1) read,load必须连续执行,但是不保证...
2019-10-08 14:40:33
171
转载 Java 线程通信内存模型---主内存与工作内存
多任务和高并发是衡量一台计算机处理器的能力重要指标之一。一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比较能说明问题,它代表着一秒内服务器平均能响应的请求数,而TPS值与程序的并发能力有着非常密切的关系。在讨论Java内存模型和线程之前,先简单介绍一下硬件的效率与一致性。硬件的效率与一致性 由于计算机的存储设备与处理器...
2019-10-08 14:38:31
172
转载 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级
一、缓存雪崩缓存雪崩我们可以简单的理解为:由于原有缓存失效,新缓存未到期间(例如:我们设置缓存时采用了相同的过期时间,在同一时刻出现大面积的缓存过期),所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列连锁反应,造成整个系统崩溃。缓存正常从Redis中获取,示意图如下:缓存失效瞬间示意图如下:缓存雪崩的解决方案:(1...
2019-10-08 14:32:45
59
原创 Git常用命令
切换分支git -c core.quotepath=false checkout feature/13.5.0跟踪远程分支origin/develop_13.3.1拉取本地分支develop/13.3.1, 并切换到本地分支develop/13.3.1git checkout -b origin/origin/develop_13.4.1 --track origin/feature/13....
2019-10-08 14:27:17
87
转载 利用redis + lua解决抢红包高并发的问题
抢红包的需求分析抢红包的场景有点像秒杀,但是要比秒杀简单点。因为秒杀通常要和库存相关。而抢红包则可以允许有些红包没有被抢到,因为发红包的人不会有损失,没抢完的钱再退回给发红包的人即可。另外像小米这样的抢购也要比淘宝的要简单,也是因为像小米这样是一个公司的,如果有少量没有抢到,则下次再抢,人工修复下数据是...
2019-10-08 14:03:25
142
转载 synchronized关键字详解及分析锁升级过程
本文链接:https://blog.csdn.net/baidu_38083619/ar...
2019-08-25 22:28:19
185
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人