美文网首页
关于线程问题

关于线程问题

作者: 张先森丶 | 来源:发表于2018-09-15 16:35 被阅读0次
image.png

正常来说,我们都认为把flag字段添加volatile,线程就可以正常退出
实验发现,结果并不像我们所想的那样
注释掉1和2,线程不会退出,写上1或者2时候,线程是可以退出的
什么原因呢?
VM针对现在的硬件水平已经做了很大程度的优化,基本上很大程度的保障了工作内存和主内存的及时同步,相当于默认使用了volatile。但只是最大程度!在CPU资源一直被占用的时候,工作内存与主内存中间的同步,也就是变量的可见性就会不那么及时!
由于jvm的自我优化,jvm中的线程在频繁的使用线程栈中的变量时,线程会对对象做use操作,不频繁使用时,做read-load-use操作
根据上面的说法,sleep让出CPU执行时间,并不会释放锁,所以在让出CPU的时候会同步(也就是read-load-use);
sychronized:java规定在对一个对象进行lock操作时,要清空工作内存,在执行引擎执行前,从主存写到工作内存,所以这个时候拿到的是最新的值
println方法是sychronized的

相关文章

  • 关于线程问题

    正常来说,我们都认为把flag字段添加volatile,线程就可以正常退出实验发现,结果并不像我们所想的那样注释掉...

  • 关于多线程的问题及答案三

    关于多线程的问题及答案三关于多线程的问题及答案三 这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能...

  • 线程通讯详解

    关于子线程能否更新UI的思考线程通讯详解线程池-多线程的高效使用姿势 上文我们说到了关于子线程中能否更新UI的问题...

  • Tomcat 请求线程的解析

    查询tomcat当前并发连接数 关于tomcat 请求线程的问题 Tomcat 请求线程数

  • 关于子线程能否更新UI的思考

    关于子线程能否更新UI的思考 线程通讯详解 线程池-多线程的高效使用姿势 当大家被问到这个问题的时候可能就...

  • Java 面试系列:线程安全之 synchronized 和 R

    前面我们介绍了很多关于多线程的内容,在多线程中有一个很重要的课题需要我们攻克,那就是线程安全问题。线程安全问题指的...

  • 线程池和多线程同步的一些问题

    关于线程池和多线程同步的一点问题记录 1.线程池 newScheduledThreadPool可以设定预定工作时间...

  • Java多线程面试问题和答案

    访中,我们通常会遇到两个主题: java采集问题 和多线程面试问题。多线程是关于并发和线程的。这是很好的准备,所以...

  • 【iOS开发】数组的线程安全

    参考文章:关于数组线程安全问题ios多线程同时访问数组问题Cocoa中的线程安全类 参考上面的文章,基本上有2种方...

  • Android 线程池ThreadPoolExecutor详解

    前言 多线程并发是我们在开发中经常遇到的问题,提及线程池,首先我们得了解线程的相关知识。关于线程的详情介绍本文就不...

网友评论

      本文标题:关于线程问题

      本文链接:https://www.haomeiwen.com/subject/rehtnftx.html