枚举的类型决策与工程实践
枚举解决的不是「怎么写常量」,而是「哪些值合法」该由谁约束。值域封闭、新增值会牵动已有逻辑时,交给编译器;值域开放、新值只需透传时,用原始类型。枚举定义值域,状态机定义流转——二者不应混在同一层。 1 什么是枚举 枚举(enumerated type)是一种取值被限定在固定集合内 …
继续阅读标签
共 4 篇
枚举解决的不是「怎么写常量」,而是「哪些值合法」该由谁约束。值域封闭、新增值会牵动已有逻辑时,交给编译器;值域开放、新值只需透传时,用原始类型。枚举定义值域,状态机定义流转——二者不应混在同一层。 1 什么是枚举 枚举(enumerated type)是一种取值被限定在固定集合内 …
继续阅读1. 引言:为什么 synchronized 仍然重要 在 Java 并发编程中,ReentrantLock、StampedLock、ConcurrentHashMap 等工具层出不穷,但 synchronized 从未退场。它是 JVM 内置监视器锁(Monitor) 的语法糖 …
继续阅读AQS 是 Java 并发包的基础抽象框架,它将多线程同步的通用逻辑(如线程排队、阻塞、唤醒、状态原子性维护)进行了统一封装。基于这一框架,开发者能以极低的代码成本,高效地实现诸如 …
继续阅读线程池这块的源码,很多人看过一遍就忘,或者只记住了几个参数的含义,对内部的运行机制其实并不清楚。今天就从源码层面,把运行机制、Worker 的设计、锁的选择、以及异常处理,认真过一遍。 任务进来之后,发生了什么 先把整体流程过一下。 一个 Task 提交进来,线程池先看当前 …
继续阅读