![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
高并发
未来谁可知
这个作者很懒,什么都没留下…
展开
-
Synchronized锁原理
Synchronized锁原理前情提要对于普通同步方法,锁是当前实例对象。对于静态同步方法,锁是当前类的Class对象。对于同步方法块,锁是Synchonized括号里配置的对象。Synchonized在JVM里的实现原理,JVM基于进入和退出Monitor对 象来实现方法同步和代码块同步Monitor是有monitorenter和monitorexit指令的,线程每次执行到monitorenter,都会尝试获取对象的monitor,也就是对象的锁锁的升级Java对象头里的原创 2020-06-21 22:37:41 · 173 阅读 · 0 评论 -
死锁核心概念
死锁核心概念1.什么是死锁在多个并发进程中,互相占用对方资源,死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程产生条件如果在一个系统中以下四个条件同时成立,那么就能引起死锁:(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3) 不剥夺条件:进程已获得的资原创 2020-05-29 09:14:30 · 294 阅读 · 0 评论 -
彻底搞懂Volatile
彻底搞懂Volatile大家都知道volatile有着三个特性,可见性,非原子性,还有个防止指令重排可见性指的是一个线程对一个共享变量的修改,另一个变量也能读到修改的值volatile比Synchronized的使用成本更低,它不会引起线程的上下文切换和调度1. Volatile的定义为了确保线程对同一共享变量能准确的和一致性的更新。一般情况是通过排他锁,而volatile更为方便,能使java线程内存模型确保所有线程对共享变量的一致性我们先看一下JMM的内存模型,再回来说Volatile原创 2020-05-29 09:09:06 · 208 阅读 · 0 评论 -
讲一讲高并发常用的三个辅助类
引言高并发现如今是面试无可避免的一道关卡,在大家都准备好的面前得会一些必杀技(亮点),下面讲的这三个辅助类,在工作中会经常用到,成为自己得一个面试亮点。三个类得简单介绍加法计数器:一直累加到设置得值,才会放行await,例子:七龙珠,召唤神龙减法计数器: 一直减,直到默认值为0,才会放行await,例子:下班最后一个人关门,秦统一六国信号量: 同步资源,满足设置得数量得线程,然后才会开...原创 2020-03-22 20:14:33 · 169 阅读 · 0 评论