最新公告
  • 欢迎您光临IO源码网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 并发编程-volatile使用精讲 PDF 下载

    并发编程-volatile使用精讲 PDF 下载

    本站整理下载:
    链接:https://pan.baidu.com/s/1j9bnvo5OjDlgXJnMg0TC8w 
    提取码:rrtp 
     
     
    相关截图:
     
    主要内容:
    1.1. 多线程下变量的不可见性
    1.1.1 概述
    在多线程并发执行下,多个线程修改共享的成员变量,会出现一个线程修改了共享变量的值后,另一个线程不能直接
    看到该线程修改后的变量的最新值。
    1.1.2 案例演示
    public class MyThread extends Thread { // 定义成员变量 private boolean flag = false ; public boolean isFlag() { return flag;} @Override public void run() { try {Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); }// 将flag的值更改为true this.flag = true ; System.out.println(“flag=” + flag); } }public class VolatileThreadDemo {// 测试类 public static void main(String[] args) { // 创建MyThread线程对象 Thread t = new MyThread() ; t.start(); // main方法 while(true) { if(t.isFlag()) { System.out.println(“执行了======”);
    北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090
    1.1.3 执行结果
    我们看到,子线程中已经将flag设置为true,但main()方法中始终没有读到修改后的最新值,从而循环没有能进入到
    fi语句中执行,所以没有任何打印。
    1.1.4 小结
    多线程下修改共享变量会出现变量修改值后的不可见性。
    1.2 变量不可见性内存语义
    1.2.1 概述
    在介绍多线程并发修改变量不可见现象的原因之前,我们需要了解回顾一下Java内存模型(和Java并发编程有关的模
    型):JMM。
    JMM(Java Memory Model):Java内存模型,是java虚拟机规范中所定义的一种内存模型,Java内存模型是标准化
    的,屏蔽掉了底层不同计算机的区别。
    Java内存模型(Java Memory Model)描述了Java程序中各种变量(线程共享变量)的访问规则,以及在JVM中将变量
    存储到内存和从内存中读取变量这样的底层细节。
    JMM有以下规定:
    所有的共享变量都存储于主内存。这里所说的变量指的是实例变量和类变量。不包含局部变量,因为局部变量
    是线程私有的,因此不存在竞争问题。
    每一个线程还存在自己的工作内存,线程的工作内存,保留了被线程使用的变量的工作副本。
    线程对变量的所有的操作(读,取)都必须在工作内存中完成,而不能直接读写主内存中的变量。
    不同线程之间也不能直接访问对方工作内存中的变量,线程间变量的值的传递需要通过主内存中转来完成。
    本地内存和主内存的关系:

     

    *** 次数:10600 已用完,请联系开发者***

    1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!384324621@qq.com
    2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
    3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
    4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有★币奖励和额外收入!

    IO 源码网 » 并发编程-volatile使用精讲 PDF 下载

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    IO源码吧
    一个高级程序员模板开发平台

    发表评论

    • 104会员总数(位)
    • 11140资源总数(个)
    • 84本周发布(个)
    • 18 今日发布(个)
    • 449稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情