锁专题(6)AbstractQueuedSynchronizer AQS 源码详解
点赞再看,已成习惯。
AQS
提供一个框架,用于实现依赖先进先出(FIFO)等待队列的阻塞锁和相关同步器(信号量,事件等)。
源码学习
类定义
/*
* @since 1.5
* @author Doug Lea
*/
public abstract class AbstractQueuedSynchronizer
extends AbstractOwnabl...
2020-10-17 08:15:55 |
Lock
锁专题(5)Seqlocks 在 java 中如何实现论文详解
点赞再看,已成习惯。
本文出自论文《Can Seqlocks Get Along With Programming Language Memory Models?》,由老马啸西风翻译整理。
这篇论文李大狗在 StampedLock 的算法笔记中提及,好奇心驱使着我将论文找出来,拜读一下。
序言
在某些情况下,Seqlock是一种重要的同步机制,它表示对常规读写器锁的重大改进。...
2020-10-17 08:15:55 |
Lock
锁专题(3)ReentrantLock 可重入锁源码解析
点赞再看,已成习惯。
ReentrantLock 源码
介绍 ReentrantLock 的文章很多,今天我们来一起看一下 ReentrantLock 的源码,理解一下实现原理。
类定义
ReentrantLock 实现了 Lock 接口,和序列化接口。
/**
* @author 老马啸西风
*/
public class ReentrantLock implem...
2020-10-17 08:15:55 |
Lock
锁专题(2)Lock 和 Condition 接口简介
接口源码学习
说明
Lock 接口和 Condition 接口作为锁最核心的两个接口,这里做一下简单介绍,为后续的源码阅读提供基础。
jdk 版本
>java -version
java version "1.8.0_192"
Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
Java HotSpot(TM) 64-Bi...
2020-10-17 08:15:55 |
Lock
锁专题(1)概览 lock overview
专题创作目的
系统整理学习 Java 中的锁信息。
为后续 mysql 数据库编写做铺垫。
历史回顾
基础知识
java 锁基本概念
java 对象锁
java 可重入锁
异步转同步
java 手写并发框架(一)异步查询转同步的 7 种实现方式
java 手写并发框架(二)异步转同步框架封装锁策略
java 手写并发框架(三)异步转同步框架注解和字节码增强
java ...
2020-10-17 08:15:55 |
Lock
操作系统学习(15)IO 缓存和 buffer
1. 磁盘高速缓存(Disk Cache)
操作系统中使用磁盘高速缓存技术来提高磁盘的I/O速度,对高速缓存复制的访问要比原始数据访问更为高效。
例如,正在运行的进程的指令既存储在磁盘上,也存储在物理内存上,也被复制到CPU的二级和一级高速缓存中。
不过,磁盘高速缓存技术不同于通常意义下的介于CPU与内存之间的小容量高速存储器,而是指利用内存中的存储空间来暂存从磁盘中读出的一系列盘块中...
2020-10-04 03:18:54 |
OS
操作系统学习(14)IO
I/O设备及其分类
I/O设备管理是操作系统设计中最凌乱也最具挑战性的部分。
由于它包含了很多领域的不同设备以及与设备相关的应用程序,因此很难有一个通用且一致的设计方案。
所以在理解设备管理之前,应该先了解具体的I/O设备类型。
特性分类
计算机系统中的I/O设备按使用特性可分为以下类型:
1) 人机交互类外部设备:用于同计算机用户之间交互的设备,如打印机、显示器、鼠标、键盘等。...
2020-10-04 03:18:54 |
OS
操作系统学习(13)文件磁盘
磁盘的结构
磁盘(Disk)是由表面涂有磁性物质的金属或塑料构成的圆形盘片,通过一个称为磁头的导体线圈从磁盘中存取数据。
在读/写操作期间,磁头固定,磁盘在下面高速旋转。
如图 4-23所示,磁盘的盘面上的数据存储在一组同心圆中,称为磁道。每个磁道与磁头一样宽, 一个盘面有上千个磁道。磁道又划分为几百个扇区,每个扇区固定存储大小(通常为512B), 一个扇区称为一个盘块。相邻磁道及相邻...
2020-10-04 03:18:54 |
OS