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