博客
关于我
夜光带你走进 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/

    你可能感兴趣的文章
    Nodejs中的fs模块的使用
    查看>>
    nodejs包管理工具对比:npm、Yarn、cnpm、npx
    查看>>
    NodeJs单元测试之 API性能测试
    查看>>
    nodejs图片转换字节保存
    查看>>
    nodejs字符与字节之间的转换
    查看>>
    NodeJs学习笔记001--npm换源
    查看>>
    NodeJs学习笔记002--npm常用命令详解
    查看>>
    nodejs学习笔记一——nodejs安装
    查看>>
    NodeJS实现跨域的方法( 4种 )
    查看>>
    nodejs封装http请求
    查看>>
    nodejs常用组件
    查看>>
    nodejs开发公众号报错 40164,白名单配置找不到,竟然是这个原因
    查看>>
    Nodejs异步回调的处理方法总结
    查看>>
    NodeJS报错 Fatal error: ENOSPC: System limit for number of file watchers reached, watch ‘...path...‘
    查看>>
    Nodejs教程09:实现一个带接口请求的简单服务器
    查看>>
    nodejs服务端实现post请求
    查看>>
    nodejs框架,原理,组件,核心,跟npm和vue的关系
    查看>>
    Nodejs模块、自定义模块、CommonJs的概念和使用
    查看>>
    nodejs生成多层目录和生成文件的通用方法
    查看>>
    nodejs端口被占用原因及解决方案
    查看>>