分类 OS 下的文章

从 CPU 缓存模型说起

文章从CPU缓存与指令重排序切入,详解Java内存模型(JMM):抽象主存与线程工作内存关系,定义8种原子操作及happens-before规则,保障多线程下共享变量可见性、有序性,并区分JMM与JVM内存区域,为并发编程提供统一规范。

怎么避免死锁?

文章介绍死锁概念、模拟代码、排查工具后,给出核心避免策略:资源有序分配法,即所有线程按统一顺序获取锁,破坏环路等待条件即可杜绝死锁。

什么是悲观锁、乐观锁?

悲观锁假定冲突频繁,访问共享资源前先加锁;乐观锁假定冲突极少,先操作后验证,冲突则重试。前者含互斥、自旋、读写锁,后者无锁,靠版本号或CAS检测冲突,仅适合低冲突场景。

进程、线程基础知识

文章系统梳理了进程与线程的核心概念:进程是资源分配单位,有创建、就绪、运行、阻塞、挂起、结束等状态及PCB控制块;线程是CPU调度单位,共享进程资源,分用户、内核、LWP三种实现。并详解上下文切换、调度时机与FCFS、SJF、RR、HRRN、HPF、MFQ等算法。

多线程冲突了怎么办?

文章剖析多线程竞争共享资源导致的“竞争条件”,提出用“临界区—互斥—同步”思路解决;详解锁(自旋/无等待)、信号量(PV)及生产者-消费者、哲学家就餐、读者-写者等经典模型的多种实现,给出免死锁、高并发、公平等策略。

目录