zoukankan      html  css  js  c++  java
  • 读书笔记:java并发

    java中主要的同步机制是关键字synchronized,它提供一种独占锁,但是 同步这个术语还包括validate类型的变量,显示锁(Explicit Lock)以及原子变量。

    -------显示锁,不明白这个具体指什么?

    线程安全: 当多个线程访问某一个类时,这个类始终都能表现出正确的行为,那么就可以称为这个类是线程安全的。

    java提供了一种内置的锁机制来支持原子性:同步代码块(synchronized Block),同步代码块包括两部分,一个作为锁对象引用,一个作为由这个锁保护的代码块。这个所对象指的是某个类的对象或者某一个类型。

    image

    “重入” 表示获取锁的操作是线程,而不是某一次的操作。

    java中编译过程中的重排序,(java的编译过程?)

    volatile 变量

    使用判断:仅当volatile变量能简化代码实现一机同步策略的验证时,才会使用它们。如果在验证正确性时需要对可见性进行复杂的判断,那么就不要使用volatile变量。

    正确的使用方式包括:确保它们自身的可见性,确保它们所引用对象的状态的可见性,以及一些重要程序生命周期事件的发生。

    image

    根据上述的判断:validate的变量是不能自增运算。

    线程封闭:

    维护线程封闭性的一种比较规范的方法是使用ThreadLocal,这个类能使线程的某个值与保存值得对象关联起来。ThreadLocal 提供了get/set等访问接口或方法,这些方法为每一个使用该变量的线程都存有一个独立的副本,因此get总是返回当前执行线程在调用set时设置的最新值。

    image

  • 相关阅读:
    走向变态的人生
    HDWIKI 4.0.2绿色版(含运行环境)(V1)
    centos7 安装python3.7.1
    一种高并发流控程序的简单轻量实现
    编写JDBC框架优化CRUD操作
    一段阻塞队列代码的纠错与优化
    一次请求在同一个事务实现
    创建Java内部类的编译错误处理
    C++模板简单分析与举例
    java.lang.OutOfMemoryError处理错误
  • 原文地址:https://www.cnblogs.com/zhailzh/p/4109010.html
Copyright © 2011-2022 走看看