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

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

难度中级
时长57分
学习人数
综合评分9.63
181人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.4 逻辑清晰
  • 两条规定
    查看全部
    0 采集 收起 来源:可见性介绍

    2015-07-27

  • 内存规定
    查看全部
    0 采集 收起 来源:可见性介绍

    2015-07-27

  • 每个线程都有自己工作内存,是主内存的一份copy
    查看全部
    0 采集 收起 来源:可见性介绍

    2015-07-27

  • 内存模型
    查看全部
    0 采集 收起 来源:可见性介绍

    2015-07-27

  • 课程目标和学习内容
    查看全部
  • 对long和double变量读写操作可能不是原子操作
    查看全部
    0 采集 收起 来源:课程总结

    2015-07-24

  • 导致共享变量在线程间不可见的原因: 1. 线程交叉执行 2. 重排序结合线程交叉执行 3. 共享变量更新后的值没有在工作内存与主内存间及时更新
    查看全部
  • 课程总结
    查看全部
    0 采集 收起 来源:课程总结

    2015-07-16

  • java实现可见性实现方式:synchoronized和volatile。 synchoronized原子性(同步性) jmm关于synchorozed的规定: 线程解锁前,必须把共享变量的最新值刷新到主内存中 线程加锁时,将清空工作内存中共享变量的值,从而使用共享变量时需要从主内存中重新读取最新的值。(加锁与解锁需要是同一把锁) 重排序:代码书写顺序与实际执行顺序同学,编译器或处理器为了提高程序性能做的优化。 1)编译器优化重排序,单线程中 2)指令级并行重排序 处理器优化 3)内存系统的重排序 处理器优化 java在单线程下不会因为重排序带来内存可见性问题。多线程如果交错执行,重排序可能会造成内存可见性问题。
    查看全部
  • java内存模型(JMM)描述java程序中各种变量的访问规则;不同线程之间无法直接访问其他线程内存中的变量,线程间变量值的传递需要通过主内存来完成; 共享变量可见性实现的原理: 线程1对共享变量的修改要想被线程2及时看到,必须经过如下2个步骤: 把工作内存1中更新过的共享变量刷新到主内存中 将主内存中最新的共享变量的值更新到工作内存2中
    查看全部
    0 采集 收起 来源:可见性介绍

    2015-07-13

  • 重排序。。
    查看全部
  • volatile 不能保证原子性
    查看全部
  • while(Thread,activeCount() > 1){ Thread.yield(); } //如果还有子线程在运行,主线程就让出cpu 资源,直到所有的子线程都运行结束,主线程在继续往下执行
    查看全部
  • volatile关键字 1,能够保证volatile变量的可见性 不能保证volatile变量复合操作的原子性 线程写volatile变量的过程: 1.改变线程工作内存的中volatile变量副本的值 2讲改变后的副本的值从工作内存刷新到主内存 线程读volatile变量的过程 1.从主内存中读取volatile变量的最新值到线程的工作内存中 2.从工作内存中读取volatile变量的副本
    查看全部
  • 1.当两个并发线程访问同一个对象object中的这个synchronized(this) 同步代码块时,一个时间内只能有一个线程得到执行 2.当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可一个访问该object中非synchronized(this)同步代码块 3.当一个线程访问object的一个synchronized(this)同步代码块时,它就获得这个object的对象锁,结果其他线程对该线程object对象所有同步代码部分的访问被暂时阻塞
    查看全部
    0 采集 收起 来源:练习题

    2015-07-05

举报

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

微信扫码,参与3人拼团

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

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