今天研究volatile的时候,发现了一个奇怪的现象,就是按照我这种写法,volatile会不好用,想求大神解释一下到底是为什么?不胜感激
2条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
qq_36660484 2018-07-23 06:58最佳回答 专家已采纳while(true)才执行while里面的代码,你这个第一个线程一开始就结束了
采纳该答案 已采纳该答案 专家已采纳评论解决 无用打赏举报微信扫一扫
分享评论登录 后可回复...
查看更多回答(1条)
报告相同问题?
提交
相关推荐 更多相似问题
- 2018-07-23 06:48回答 2 已采纳 while(true)才执行while里面的代码,你这个第一个线程一开始就结束了
- 2018-03-19 15:36回答 4 已采纳 vilatile只能保证原子性操作的线程安全
- 2018-01-13 10:20回答 3 已采纳 servlet在容器中只会被初始化一次,所以cache也只会被初始化一次; 希望对你有帮助....
- 2022-03-12 19:11Noblegasesgoo的博客 所以我们的 volatile 他是直接对被修饰的变量在主存中就直接禁止被线程复制到自己的工作空间中,让线程使用的时候,直接从主内存拿取,这样所有线程都得访问一个位于主内存中的变量,所以解决了不可见的问题。...
- 2021-06-11 22:30爱笑的架构师的博客 《死磕 Java 并发编程》系列连载中,大家可以关注一波。 「死磕 Java 并发编程」阿里二面,面试官:说说 Java CAS 原理? 「死磕 Java 并发编程」面试官:说说什么是 Java 内存模型(JMM)? 「死磕 Java 并发编程」...
- 2021-06-17 09:37来老铁干了这碗代码的博客 双非本科,四面成功上岸阿里...Java并发编程面经大全——双非上岸阿里巴巴系列 2021最新版面经——>传送门3 4 面试阿里,你必须知道的背景知识——双非上岸阿里巴巴系列 2021最新版面经——>传送门4 如有疏漏
- 2019-10-12 02:25回答 3 已采纳 代码没具体功能没有去看,但是你的问题可以解答,区别绝对是有的,使用this指CollectData实例,代码中的方式指的是GreenhouseScheduler实例,锁持有者不同
- 2015-06-03 16:11回答 5 已采纳 volatile只是保证从主内存加载到线程工作内存的值是最新的. 你也说了“线程A从主存中拿到i为1,线程A没有进行加法运算,被阻塞了”,相当于线程A已经从主存取完值了,这时候主存中数值的更新和线程
- 2018-07-31 09:06回答 4 已采纳 如果没有volatile 做修饰stop = true;,这时其他线程对stop可能不会立马可见,但不代表永远不可见,那只是时间问题,当然这个时间对人来讲肯定很快,微妙级别的或更短 你只要线程2给s
- 2022-03-17 20:30戴着假发的程序员的博客 正如我开篇所说,我们要整理一些java并发编程的学习文档,这一篇就是第四篇:volatile关键字。 主要讲volatile关键字的主要作用和实现这些作用的原理。 开整 先整体来说:volatile关键字可以修饰变量,volatile修饰...
- 2018-12-20 15:48耿子666的博客 Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile...
- 2018-08-25 11:20V_Lute的博客 1.关于Java并发,说说你对volatile关键字的理解 就我理解的而言,被volatile修饰的共享变量,就具有了以下两点特性: 1.保证了不同线程对该变量操作的内存可见性; 2.禁止指令重排序 2.详细说下什么是内存...
- 2018-12-07 06:16回答 4 已采纳 看看这个,对你帮助应该很大 https://www.cnblogs.com/dolphin0520/p/3920373.html
- 2021-06-17 19:17回答 1 已采纳 每一毫秒内获取currentTimeMillis是一样的,每一毫秒更新一次。 每次休息1毫秒,TimeUnit.MILLISECONDS.sleep(1);,为了避免对CPU使用的过度浪费
- 回答 3 已采纳 因为你的线程里用到log.debug打印了信息,而打印处理的底层代码用到同步锁,所以线程会刷新本地的变量副本 你把while(run)循环的log.debug注释掉再执行试试看
- 2021-03-16 10:47九幽孤翎的博客 后续会根据《深入理解计算机系统》,《Java并发编程的艺术》,《Java并发编程实战》,极客时间的Java并发编程实战课程 等内容补充完善 以下大部分阐述来自上述书籍与课程中个人认为很重要的部分,也有部分心得体会...
- 2020-12-18 17:58质检-迟飞的梦的博客 在这大半个月中认识到了java并发界的巨佬 Doug Lea.话说至此,却不知如何动笔.不如就按照学习的思路,复习一遍来写下该博客吧! 并发之线程物语 早在我还是个小白的时候,对于并发编程的理解仅仅是Thread和Sychonized,...
- 2021-07-24 09:30犬来八方的博客 Java中级开发(底层+Spring相关+Redis+分布式+设计模式+MySQL+高并发+锁+线程) Java高级“程序猿”(高并发+Redis缓存+分布式+消息队列+高可用+微服务+分库分表+读写分离) 高并发系列(经典面试题:如何设计...
- 2021-08-02 23:50回答 2 已采纳 JMM通过使用volatile,synchronized,final等来进一步设置CPU内存屏障,防止 CPU 对内存的乱序访问来保证共享数据在多线程并行执行下的可见性。比如这个volatile关键字
- 2020-10-19 07:00hzbooks的博客 作者:wxdoop原文:https://blog.csdn.net/qq_36235098来源:前程有光前言进程是计算机中程序关于某几何数据集合上的一次运行活动,是系统进行资源分配和调度...
- 没有解决我的问题, 去提问