搞懂多线程(十)之AQS


搞懂多线程(十)之AQS 一、概念 AbstractQueuedSynchronizer是一个抽象类,缩写AQS:是用来构建锁或者其它同步器组件的重量级基础框架及整个JUC体系的基石,通过内置的CLH(FIFO)队列的变种来完成资源获取线程的排队工作,将每条将要去抢占资源的线程封装成一个Node节点

Mac如何固定多桌面的顺序

Mac如何固定多桌面的顺序 打开系统偏好设置 找到调度中心,并打开

JVM之对象内存布局

JVM 

JVM之对象内存布局 一、整体说明 二、名词说明 1、对象头 在64位系统中,Mark Word占了8个字节,类型指针占了8个字节(未开启指针压缩),一共是16个字节。 下图为开启了指针压缩(JVM默认开启)的Object对象的内存占用情况(value值注意大小端问题,byte倒着读,bit正着读)

java基本数据类型


java基本数据类型 整数类型 补充:计算机存储单位 字节(Byte):是计算机用于计量存储容量的基本单位,一个字节等于8 bit。 位(bit):是数据存储的最小单位。二进制数系统中,每个0或1就是一个位,叫做bit(比特),其中8 bit 就称为一个字节(Byte)。 转换关系:

修复Mac开机总算弹出“电脑关机是因为发生了问题”

修复Mac开机总算弹出“电脑关机是因为发生了问题” 表面现象 出现这种情况是Mac异常关机引起的,如突然断电后,或者修改了EFI引导文件,再开机就会弹出“电脑关机是因为发生了问题”的提示窗口。 出现原因 主要原因是突然关机之后,系统会生成一份Sleep Wake Failure错误报告在你的电脑中,

搞懂多线程(九)之ThreadLocal

一、概述 ThreadLocal提供线程局部变量。这些变量与正常的变量不同,因为每一个线程在访问ThreadLocal实例的时候(通过其get或set方法)都有自己的、独立初始化的变量副本。 解决的是在当前线程中,有属于自己的变量,可以存储数据,例如可以使用ThreadLocal存储当前登录用户的信

搞懂多线程(八)之原子操作类


搞懂多线程(八)之原子操作类 一、概述 二、基本类型原子类 1、AtomicInteger 概念 可以原子方式更新的int值 构造方法

搞懂多线程(七)之CAS


搞懂多线程(七)之CAS 一、概念 CAS(compare and swap):中文翻译成比较并交换,实现并发算法时常用到的一种技术。 它包含三个操作数:内存位置、预期原值及更新值。 执行CAS操作的时候,将内存位置的值与预期原值比较: 如果相匹配,那么处理器会自动将该位置值更新为新值 如果不匹配,

搞懂多线程(六)之volatile关键字


搞懂多线程(六)之volatile关键字 一、特性 1.保证可见性 对一个被volatile关键字修改的变量 写操作的话,这个变量的最新值会立即刷新回到主内存中 读操作的话,总是能够读取到这个变量的最新值,也就是这个变量最后被修改的值 当某个线程收到通知,去读取volatile修饰的变量的值的时候,

搞懂多线程(五)之线程中断、等待、唤醒


搞懂多线程(五)之线程中断、等待、唤醒 一、线程中断 方式一:volatile关键字 通过volatile关键字的可见性修饰一个标识,要停止的线程监听该标识 方式二:AtomicBoolean原子类 通过AtomicBoolean原子布尔类,修饰一个标识,要停止的线程监听该标识 方式三:interr