Java 并发编程(三)设计线程安全的类-实例封闭

        到目前为止,我们已经介绍了关于线程安全与同步的一些基础知识。然而,我们并不希望对每一次内存访问都进行分析以确保是线程安全的,而是希望将一些现有的线程安全组件组合为更大规模的组合为更大规模的组件或程序。之后,我们会讲一些设计线程安全类的一些基本概念,介绍一些组合模式。


一、设计线程安全的类

        在设计线程安全类的过程中,需要包含以下三个基本要素:

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

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

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

        要分析对象的状态,首先从对象的域开始。如果对象中所有的域都是基本类型的变量,那么这些域将构成对象的全部状态。如果域中引用了其他的对象,那么该对象的状态将包含被引用对象的域。例如,LinkedList 的状态就包含了链表中所有节点对象的状态。

        同步策略定义了如何在不违背对象不变条件或后验条件的情况下对状态的访问操作进行协同。同步策略规定了如何将不可变性、线程封闭与加锁机制等结合起来以维护线程的安全性,并且还规定了哪些变量由哪些锁来保护。


1、收集同步需求

        要确保类的线程安全型,就要确保它的不变性条件不会在并发访问的情况下被破坏。对象与变量都有一个状态空间,即所有可能的取值。状态空间越小ÿ

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值