10.并发设计模式

总结
  • Immutability:所有属性 final,天然线程安全,但引用类型属性指向的对象仍可变
  • Copy-on-Write:写时复制,读多写少场景,可容忍短暂不一致
  • ThreadLocal:每个线程持有副本,彻底避免共享,详见 11.ThreadLocal
  • Guarded Suspension:等条件满足再执行,是等待-通知机制的模式化封装,典型应用是异步转同步

Immutability 模式(不变性)

对象创建后状态不再改变,天然线程安全,无需加锁。

典型:StringInteger 等包装类。

Copy-on-Write 模式(写时复制)

读操作直接读原数据,写操作复制一份新数据修改,修改完再替换引用。

线程本地存储模式(Thread Local Storage)

每个线程持有自己的变量副本,彻底避免共享,无需同步。详见 [[11.ThreadLocal]]。

Guarded Suspension 模式(保护性暂停)

等待条件满足后再继续执行,是 06.等待-通知机制 的模式化封装。

请求方 → 放入 GuardedObject → 等待结果
处理方 → 处理完成 → 填充结果 → 唤醒请求方

典型应用:异步转同步(如 RPC 等待响应),Lock+Condition 可以实现这个模式。