自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 117

原创 线程池执行顺序

线程池提交任务时的执行顺序如下:向线程池提交任务时,会首先判断线程池中的线程数是否大于设置的核心线程数,如果不大于,就创建一个核心线程来执行任务。如果大于核心线程数,就会判断缓冲队列是否满了,如果没有满,则放入队列,等待线程空闲时执行任务。如果队列已经满了,则判断是否达到了线程池设置的最大线程数,如果没有达到,就创建新线程来执行任务。如果已经达到了最大线程数,则执行指定的拒绝策略。 p...

2019-12-11 09:39:08 4552

原创 为什么Kafka速度那么快

为什么Kafka速度那么快Why is Kafka so fastSSD为什么顺序写比随机写性能好

2019-10-09 10:48:34 106

转载 限流

https://www.cnblogs.com/biglittleant/p/8979915.html

2019-10-08 15:54:57 92

转载 [Java 并发编程] 集合框架之 同步容器类 & 并发容器类

通过上一篇文章,我们已经知道设计一个线程安全类的原则和步骤,以及在设计过程中我们应当注意的细节。实际上,Java 的集合库包含了线程安全集合和非线程安全集合,可以说 Java 的线程安全集合库就是按照前一篇说到的实例封闭、安全性的委托、组合这几个方式来实现的。这篇主要简单介绍 Java 集合库包含哪些常用的容器类,它们可以简单区分为:非同步集合同步集合并发集合那么,它们分别包括哪些具...

2019-10-08 15:02:55 79

转载 Mybatis执行流程分析

最近太忙了,一直没时间继续更新博客,今天忙里偷闲继续我的Mybatis学习之旅。在前九篇中,介绍了mybatis的配置以及使用, 那么本篇将走进mybatis的源码,分析mybatis 的执行流程, 好啦,鄙人不喜欢口水话,还是直接上干活吧:1. SqlSessionFactory 与 SqlSession.  通过前面的章节对于mybatis 的介绍及使用,大家都能体会到SqlSe...

2019-10-08 14:51:44 91

转载 Java线程工作内存与主内存变量交换过程及volatile关键字理解

Java线程工作内存与主内存变量交换过程及volatile关键字理解1. Java内存模型规定在多线程情况下,线程操作主内存变量,需要通过线程独有的工作内存拷贝主内存变量副本来进行。此处的所谓内存模型要区别于通常所说的虚拟机堆模型:2. 线程独有的工作内存和进程内存(主内存)之间通过8中原子操作来实现,如下图所示:原子操作的规则(部分):1) read,load必须连续执行,但是不保证...

2019-10-08 14:40:33 164

转载 Java 线程通信内存模型---主内存与工作内存

多任务和高并发是衡量一台计算机处理器的能力重要指标之一。一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比较能说明问题,它代表着一秒内服务器平均能响应的请求数,而TPS值与程序的并发能力有着非常密切的关系。在讨论Java内存模型和线程之前,先简单介绍一下硬件的效率与一致性。硬件的效率与一致性  由于计算机的存储设备与处理器...

2019-10-08 14:38:31 164

转载 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级

一、缓存雪崩缓存雪崩我们可以简单的理解为:由于原有缓存失效,新缓存未到期间(例如:我们设置缓存时采用了相同的过期时间,在同一时刻出现大面积的缓存过期),所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列连锁反应,造成整个系统崩溃。缓存正常从Redis中获取,示意图如下:缓存失效瞬间示意图如下:缓存雪崩的解决方案:(1...

2019-10-08 14:32:45 52

原创 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 75

转载 利用redis + lua解决抢红包高并发的问题

抢红包的需求分析抢红包的场景有点像秒杀,但是要比秒杀简单点。因为秒杀通常要和库存相关。而抢红包则可以允许有些红包没有被抢到,因为发红包的人不会有损失,没抢完的钱再退回给发红包的人即可。另外像小米这样的抢购也要比淘宝的要简单,也是因为像小米这样是一个公司的,如果有少量没有抢到,则下次再抢,人工修复下数据是...

2019-10-08 14:03:25 131

转载 synchronized关键字详解及分析锁升级过程

本文链接:https://blog.csdn.net/baidu_38083619/ar...

2019-08-25 22:28:19 180

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除