博客
关于我
夜光带你走进 Java 成神之路(四十一)擅长的领域
阅读量:313 次
发布时间:2019-03-01

本文共 2024 字,大约阅读时间需要 6 分钟。

????Volatile?????

Volatile?Java????????????????????????????????????????????????????????????????????????????????Volatile?????????????????????????

Volatile???

  • ??????Volatile????????????????????????Volatile??????????????????
  • ??????Volatile??????????????????????????? atomic???????????
  • Volatile?????

    • ??????????????Volatile?????????????????????
    • ???????????????????Volatile???????????????????

    Volatile?Synchronized???

    • Volatile???????????????????????????????Volatile???
    • Synchronized??????????????????????????

    Lock????????

    ?Java????????Lock??????????????????synchronized???????????????????????????Lock??????????????????????ReentrantLock?

    ReentrantLock???

    • ???????????????????????
    • fairness???????????????????
    • blocking???????????????????

    Lock?????

    • ??synchronized????????????Lock????????????
    • ?????Lock??????????????????????

    ?????????

    ?????????????????????????????????????????????????????????????????????????????????

    ???

    • ???????????????????????????????????????????????????
    • ??????????????????
    • ???????????????????

    ????

    • ???????????????????????????????????
    • ??????????????????
    • ????????????????

    ????

    ?????Volatile?Lock??????????

    public class Demo {    private volatile int a = 1;    private Lock lock = new ReentrantLock();    public int getA() {        lock.lock();        return a;    }    public void setA(int a) {        lock.lock();        try {            Thread.sleep(2);        } catch (InterruptedException e) {            e.printStackTrace();        }        this.a = a;        lock.unlock();    }    public static void main(String[] args) {        Demo d = new Demo();        d.a = 10;        new Thread(new Runnable() {            @Override            public void run() {                System.out.println(d.a);            }        }).start();        try {            Thread.sleep(100);        } catch (InterruptedException e) {            e.printStackTrace();        }        System.out.println("??????" + d.getA());    }}

    ??

    Volatile?Lock???Java???????????Volatile?????????????????Lock????????????????????????????????????????????

    转载地址:http://dzbo.baihongyu.com/

    你可能感兴趣的文章
    Power BI 中的 Python 可视化需要什么设置?任何特定的 matplotlib 包版本或系统设置?
    查看>>
    Power BI:如何在 Power Query 编辑器中将 Python 与多个表一起使用?
    查看>>
    power english (3) main text -emotion mastery - focus
    查看>>
    POWER ENGLISH (6) - MODEL
    查看>>
    power english (1) —— passion
    查看>>
    Power English (1) 原文
    查看>>
    power English (3)原文
    查看>>
    POWER ENGLISH(7)- repetition
    查看>>
    SpringBoot中集成SpringBatch详细解析与实战示例(CSV文件读取十万条数据进行业务处理后写入Mysql数据库)
    查看>>
    powerbi 一张表在另外一张表中出现的数量_PowerBi之初步学习笔记
    查看>>
    QGIS怎样设置简体中文以及新建可编辑的多边形的图层
    查看>>
    PowerBuilder 使用自定义事件触发键盘Enter事件
    查看>>
    PowerCreatorCMS UploadResourcePic 任意文件上传漏洞复现
    查看>>
    PowerDesigner 使用的一些技巧(转)
    查看>>
    QGIS在Windows上下载安装与建立空间数据库连接
    查看>>
    PowerDesigner165安装婆姐汉花教程
    查看>>
    PowerDesigner使用教程:设置注释、默认值属性
    查看>>
    PowerDesigner使用教程:不显示背景网格
    查看>>
    PowerDesigner使用教程:创建数据模型以及导出
    查看>>
    PowerDesigner使用教程:右侧工具栏显示/隐藏
    查看>>