java构成对象的三要素_对象组合

本文探讨了构建线程安全类的三个关键要素:对象状态、不变性条件和并发访问管理策略。介绍了如何确保不变性条件、处理先验条件和状态所有权,以确保在并发环境下正确地封装和同步。同时,讨论了实例封闭、Java监视器模式以及线程安全性的委托原则,以实现线程安全的组件组合。
摘要由CSDN通过智能技术生成

安全组件组合模式,是一个类更容易成为线程安全的,并且在维护过程中不会无意中破坏类的安全性保证。

1设计线程安全的类

设计线程安全类 包含的三要素

找出构成对象状态的所有变量

找出约束状态变量的不变性条件

建立对象状态的并发访问管理策略

关键词:  对象状态      不变性条件      并发访问管理策略

cf18cbbd489298eb80282732089b183d.png

1.1  收集同步需求

1.确保不变性条件 不会在并发访问的情况下被破坏(counter 封装   复合操作)

2.后验条件判断判断状态迁移是否有效

3.实现后验条件和不变性条件的约束,需要额外的同步与封装

1.2 依赖状态操作

先验条件

例子:队列为空不能删除

并发,先验条件可能为真

1.3  状态所有权

并发访问一个对象时避免产生相互干扰:  线程安全对象,事实不可变对象,有锁来保护的对象

2.实例封闭

对象不是线程安全的,你可以确保该对象只能由单个线程访问,或者通过一个锁来保护对该对象的所有访问。

封闭在类的一个实例(作为一个私有成员)

封闭在某个作用域(作为一个成员变量)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值