zoukankan      html  css  js  c++  java
  • 使用场景:final、volatile、ThreadLocal、synchronized、Atomic(自己整理)

    原理 使用场景
    final 实现了Java内存模型的可见性 一个变量要被多个线程访问
    volatile 实现了Java内存模型的可见性、有序性 一个变量要被多个线程访问
    ThreadLocal 如果一个变量要被某个线程独享,Java中就没有类似C++中__declspec(thread)这样的关键字,不过还是可以通过java.lang.ThreadLocal类来实现线程本地存储的功能。每一个线程的Thread对象中都有一个ThreadLocalMap对象,这个对象存储了一组以ThreadLocal.threadLocalHashCode为键,以本地线程变量为值的K-V值对,ThreadLocal对象就是当前线程的ThreadLocalMap的访问入口,每一个ThreadLocal对象都包含了一个独一无二的threadLocalHashCode值,使用这个值就可以在线程K-V值对中找回对应的本地线程变量。 一个变量要被某个线程独享
    synchronized 实现了Java内存模型的原子性、可见性、有序性
    Atomic CAS(《深入理解Java虚拟机(第2版)》第572页) 一个变量要被多个线程访问

    Java 内存模型的3个特性:原子性、可见性和有序性,详见:https://www.cnblogs.com/cag2050/p/12409283.html

  • 相关阅读:
    Ztree
    WebAPI
    数据传输
    jqyery+ajax 提交表单
    初试 MVC+Boostrap
    CSV 导入SQL Server 中
    10-C语言循环结构(一)
    Linux测试语句(test)
    C 链表
    C递归
  • 原文地址:https://www.cnblogs.com/cag2050/p/12408266.html
Copyright © 2011-2022 走看看