为了账号安全,请及时绑定邮箱和手机立即绑定

细说Java多线程之内存可见性

难度中级
时长57分
学习人数
综合评分9.63
181人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.4 逻辑清晰
  • 工作内存和主内存及时更新。
    查看全部
  • 共享变量
    查看全部
    0 采集 收起 来源:可见性介绍

    2015-08-12

  • 线程共享变量的所有操作都比现在自己的工作内存中进行,不能直接从主内存中读写。 不同线程之间无法直接访问其他线程工作内存的变量,线程间变量值的传递需要通过主内存完成。
    查看全部
    0 采集 收起 来源:可见性介绍

    2015-08-12

  • 数据争用--线程间的可见性
    查看全部
  • 看了一点,没看完,难道居然没提:先行发生
    查看全部
    0 采集 收起 来源:课程总结

    2015-08-07

  • volatile使用场合
    查看全部
  • 可见性概念
    查看全部
    0 采集 收起 来源:可见性介绍

    2015-08-06

  • D_r
    共享数据的访问权限都必须定义为private
    查看全部
    0 采集 收起 来源:练习题

    2015-08-06

  • D_r
    volatile不需要加锁,不阻塞线程,更轻量级 volatile读操作相当于加锁,写操作相当于解锁 synchronized即能保证可见性又能保证原子性,而volatile只能保证可见性,不能保证原子性
    查看全部
  • D_r
    要在多线程中安全地使用volatile变量,必须同时满足: (1)对变量地写入操作不依赖当前值 不满足:number++ 、count = count*5 满足:boolean变量、记录温度变化的变量等 (2)该变量没有包含在具有其他变量的不变式中
    查看全部
  • D_r
    1.将代码改成public synchronized void increase(){......} //因为有休眠100ms的操作,使得线程在等待锁synchronized会时间比较长 2.所以要缩小锁的粒度 public void increase(){... synchronized(this){this.number++};}//看左图截图 1.ReentrantLock private Lock lock = new ReentrantLock();//可重入锁 public void increase() { lock.lock();//注意:锁内部的操作需要放到try...finally中执行 try{ this.number++;//number的可见性+number++的原子性 }finally{ lock.unlock();//释放锁资源 }
    查看全部
  • D_r
    while(Thread,activeCount() > 1){ Thread.yield(); } //如果还有子线程在运行,主线程就让出cpu 资源,直到所有的子线程都运行结束,主线程在继续往下执行
    查看全部
  • 共享变量可见性实现的原理: 线程1对共享变量的修改要想被线程2及时看到,必须经过如下2个步骤: 把工作内存1中更新过的共享变量刷新到主内存中 将主内存中最新的共享变量的值更新到工作内存2中
    查看全部
    0 采集 收起 来源:可见性介绍

    2015-08-06

  • D_r
    volatile关键字 1,能够保证volatile变量的可见性 不能保证volatile变量复合操作的原子性 线程写volatile变量的过程: 1.改变线程工作内存的中volatile变量副本的值 2讲改变后的副本的值从工作内存刷新到主内存 线程读volatile变量的过程 1.从主内存中读取volatile变量的最新值到线程的工作内存中 2.从工作内存中读取volatile变量的副本
    查看全部
  • JMM关于synchronized的两条规定: (1)线程解锁前,必须把共享变量的最新值刷新到主内存中 (2)线程加锁时,将清空工作内存中共享变量的值,从而使用共享变量需要从主内存中重新读取最新的值
    查看全部

举报

0/150
提交
取消
课程须知
学习本课程前,你需要熟练掌握Java的基础语法,熟悉Java多线程的基础知识,以及synchronized实现线程同步的方法。
老师告诉你能学到什么?
1、内存可见性 2、指令重排序 3、as-if-serial语义 4、synchronized实现可见性 5、volatile实现可见性

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!