一、并发编程两个关键问题 线程之间如何通信、同步。java并发采用的是共享内存模型 二、JMM内存模型的抽象结构 描述的是一组规则或规范,通过这组规范定义了程序中各个变 ...
一、并发编程两个关键问题 线程之间如何通信、同步。java并发采用的是共享内存模型 二、JMM内存模型的抽象结构 描述的是一组规则或规范,通过这组规范定义了程序中各个变 ...
一、synchronized的三种应用方式 1、修饰实例方法,锁是当前实例对象,进入同步代码前要获得当前实例的锁 /** * synchronized修饰实例方法,当前线程的锁 ...
1、原始构成: synchronized是关键字,属于JVM层面,底层是由一对monitorenter和monitorexit指令实现的。 ReentrantLock是一个具体类,是API ...
一、CAS是什么? 比较并交换,它是一条CPU并发原语。判断内存某个位置的值是否为预期值,如果是更改为新值,这个过程是原子的。 原语属于操作系统用语范畴,是由若干条指令组成的,用于完成某个功能的一 ...
一、volatile特性: volatile是Java虚拟机提供的轻量级的同步机制。主要有三大特性: 保证可见性 不保证原子性 禁止指令重排序 1、保证可见性 1)代码演示 ...
一、阻塞队列 当阻塞队列是空,从队列中获取元素的操作会被阻塞 当阻塞队列是满,往队列中添加元素的操作会被阻塞 二、为什么用,有什么好处? 我们不需要关心什么时候需要阻塞线程,什么时候需要唤醒线 ...
死锁发生:两个或多个线程之间,互相持有对方需要的锁,而永久处于阻塞状态 一、手写死锁代码: 二、死锁产生的四个条件:互斥:共享资源X和Y只能被一个线程占用占有且等待:线程T1已 ...