4.对象的组合

4.对象的组合

目录

1.设计线程安全的类

1.1收集同步需求

1.2依赖状态的操作

1.3状态的所有权

2.实例封闭

2.1Java监视器模式

2.2示例(车辆追踪)

3.线程安全性的委托

3.1示例:基于委托的车辆追踪

3.2独立的状态变量

3.3委托失效

3.4发布底层的状态变量

3.5示例:发布状态的车辆追踪器

4.在现有线程安全类中添加功能

4.1客户端加锁机制

4.2组合(装饰模式)



1.设计线程安全的类

4.对象的组合

4.对象的组合

4.对象的组合

1.1收集同步需求

4.对象的组合

1.2依赖状态的操作

4.对象的组合

1.3状态的所有权

没看懂

  • 这节总结

不可变条件:例如某个用于计数的long类型不能为负值

后验条件:下一个状态需要依赖当前状态,这个操作必须是复合操作。

先验条件:例如:不能从空队列移除一个元素

状态的所有权

 

2.实例封闭

4.对象的组合

4.对象的组合

通过封闭与加锁机制使set线程安全。

4.对象的组合

 

2.1Java监视器模式

把对象所有可变状态封装起来,并有对象自己的内置锁保护

4.对象的组合

4.对象的组合

2.2示例(车辆追踪)

4.对象的组合

4.对象的组合

4.对象的组合

 

3.线程安全性的委托

4.对象的组合

3.1示例:基于委托的车辆追踪

4.对象的组合

4.对象的组合

 

4.对象的组合

 

3.2独立的状态变量

4.对象的组合

4.对象的组合

3.3委托失效

4.对象的组合

4.对象的组合

3.4发布底层的状态变量

4.对象的组合

3.5示例:发布状态的车辆追踪器

https://blog.csdn.net/zhang284021445/article/details/84902477

 

4.在现有线程安全类中添加功能

扩展类机制

4.对象的组合

4.1客户端加锁机制

4.对象的组合

4.对象的组合

4.对象的组合

4.2组合(装饰模式)

4.对象的组合

4.对象的组合