zoukankan      html  css  js  c++  java
  • 并发编程初探-对象的组合

    对象的组合

      一、设计线程安全的类

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

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

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

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

       2.收集同步需求

         要确保类的线程安全性,就需要确保它的不变性条件不会再并发访问的情况下被破坏,这就需要对其状态进行推断。

         对象与变量都有一个状态空间,即所有可能的取值,状态空间越小,就越容易判断线程的状态。

         如果不了解对象的不变性条件和后验条件,那么久不能确保线程安全性。要满足在状态量的有效值或状态转换上的各种条件,就需要借助于原子性与封装性。

       3.依赖状态的操作

         如果在某个操作中包含基于状态的先验条件,那么这个操作就称为依赖状态的操作。

      二、实例封闭

       1.封装简化了线程安全类的实现过程,它提供了一种实例封闭机制,通常也简称为“封闭”。

       2.将数据封装在对象内部,可以将数据的访问限制在对象的方法上,从而更容易确保线程在访问数据是总能持有正确的锁。

       3.封闭机制更易于构造线程安全类,因为当封闭类的状态变化时,在分析类的线程安全性时就无须检查整个程序。

       4.Java监视器模式

        从线程封闭原则及其逻辑推论可以得出Java监视器模式。遵循Java监视器模式的对象会把对象的所有可变状态都封装起来,并且由对象自己的内置锁来保护。

      三、线程安全性的委托

         如果一个状态变量时线程安全的,并且没有任何不变性条件来约束它的值,在变量的操作上也不存在任何允许的状态转换,那么久可以安全的发布这个变量。

  • 相关阅读:
    04_远程管理常用命令
    03_文件和目录常用命令
    02_Linux 终端命令格式
    01_常用 Linux 命令的基本使用
    test
    centOS 7 更改root密码
    安装 centos7
    1
    IO模型
    使用git连接到Github
  • 原文地址:https://www.cnblogs.com/lrh-xl/p/5393661.html
Copyright © 2011-2022 走看看