抽象同步队列AQS—— AQS的实现ReentrantLock
摘要:什么都无法舍弃的人,什么也改变不了!!! 1.ReentrantLock特性 A:支持公平加锁和非公平加锁方式 B:独占模式加锁 C:支持手动解锁 D:支持锁的重入 2.ReentrantLock的核心原理 A:自旋——等待加锁和解锁 B:park——线程阻塞(第一次尝试阻塞不会直接阻塞,而是先标记
阅读全文
抽象同步队列AQS(上)—— 宏观上理解AQS
摘要:这一切都是命运石之门的选择! 1.AQS在jdk中的应用架构 打开idea,找到AbstractQueuedSynchronizer类,按住ctrl+alt+shift+u,显示如图: 然后选中AbstractQueuedSynchronizer,然后按ctrl+t,显示出aqs的应用: 然后全选,
阅读全文
synchronized原理详解
摘要:活像个孤独患者自我拉扯,外向的孤独患者有何不可? 鸽了一段时间,继续开更。 1.同步器的存在意义 多线程编程中,有可能会出现多个线程同时访问同一个共享、可变资源的情况,这个资源我们称之其为临界资源;这种资源可能是: 对象、变量、文件等。由于线程执行的过程是不可控的,所以需要采用同步机制来协同对对象可
阅读全文
volatile原理详解
摘要:直接起飞。 今天只有残留的躯壳,迎接光辉岁月。 1.并发编程的三大问题? 原子性:原子性指的是一个操作是不可中断的,即使是在多线程环境下,一个操作一旦开始就不 会被其他线程影响(对于原子性的代码块或者原子性变量,多线程环境下面是隔离的,互不影响的;或者说是代码是同步互斥执行)(32位系统中,对于lo
阅读全文
JMM模型详解
摘要:直接起飞。 什么是JMM内存模型? 这并不是一个实际存在的东西,并不是一个实际存在的东西,并不是一个实际存在的东西;重要的事情说3遍,只是一种抽象概念。个人理解,JMM内存模型描述的是java线程和硬件通信的一个过程。 标准解释: Java内存模型(Java Memory Model简称JMM)是一
阅读全文
计算机运行时内存&处理器CPU初步认知
摘要:芜湖起飞。 1.冯诺依曼计算机模型 计算机在运行时,先从内存中取出第一条指令,通过控制器的译码,按指令的要求,从存储器中取出数据进行指定的运算和逻辑操作等加工,然后再按地址把结果送到内存中去。 接下来,再取出第二条指令,在控制器的指挥下完成规定操作。依此进行下去。直至遇到停止指令。 程序与数据一样存
阅读全文