社区
非技术区
帖子详情
volatile是什么??
zhoufanking
2004-03-09 12:40:38
看demo/clock程序时,看到的。
...全文
53
2
打赏
收藏
volatile是什么??
看demo/clock程序时,看到的。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
volatile
是什么?可以保证有序性吗?
在涉及到复合操作的情况下,例如 `i++` 这样的自增操作,`
volatile
` 不能确保原子性,可能会出现线程安全问题。这意味着在多线程环境下,`
volatile
` 变量的读取和写入操作在指令级别上会保持顺序,即写入操作先行于后续的读取操作,不会被重排序。`
volatile
` 是 Java 中的一个关键字,用于修饰变量。总结来说,`
volatile
` 关键字确保了对该变量的读取和写入操作在多线程环境下的可见性,并禁止了指令的重排序,但并不能解决所有的线程安全问题,特别是不能保证复合操作的原子性。
volatile
是什么?
volatile
是什么? 大厂面试题: 1、请你谈谈对
volatile
的理解? 2、CAS你知道吗? 3、原子类AtomicInteger的ABA问题谈谈?原子更新引用知道吗? 4、我们都知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案? 5、公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。 6、CountDownLatch、Cy...
Volatile
是什么?
概述
Volatile
是 Java 中一个非常有用的关键字,用于保证多线程环境下共享变量的可见性和一致性。可见性在多线程环境中,当一个线程修改了共享变量的值时,其他线程可能无法立即看到最新的值。这是因为每个线程都有自己的工作内存,其中包含对共享变量的副本。当一个线程修改共享变量时,只有该线程的工作内存中的副本才会被更新,而其他线程工作内存中的副本仍然是旧的值。
Volatile
可以保证所有线程都能看到共享变量的最新值。当一个线程修改了共享变量的值时,JVM 会将该值刷新到主内存中。
Volatile
是什么?有什么用途?
概念
volatile
是Java中的关键字,用来修饰会被不同线程访问和修改的变量。
volatile
可以说是java虚拟机提供的最轻量级的同步机制。 当一个变量被定义成
volatile
之后,它具备2个特性 第一项是保证此变量对所有线程的可见性 这里的可见性是指当一个线程修改了这个变量的值,新值对于其它线程来说是可以立即得知的,二普通变量并不能做到这一点,普通变量的值在线程间传递是均需要通过主内存来完成。比如,线程A修改一个普通变量的值,然后向主内存进行回写,另外一条线程B在线程A回写完成了之后再对主内
volatile
的作用是什么?与 synchronized 有什么异同?
volatile
是什么? 首先我们就来介绍一下
volatile
,它是 Java 中的一个关键字,是一种同步机制。当某个变量是共享变量,且这个变量是被
volatile
修饰的,那么在修改了这个变量的值之后,再读取该变量的值时,可以保证获取到的是修改后的最新的值,而不是过期的值。 相比于 synchronized 或者 Lock,
volatile
是更轻量的,因为使用
volatile
不会发生上下文切换等开销很大的情况,不会让线程阻塞。但正是由于它的开销相对比较小,所以它的效果,也就是能力,相对也小
非技术区
23,409
社区成员
70,517
社区内容
发帖
与我相关
我的任务
非技术区
Java 非技术区
复制链接
扫一扫
分享
社区描述
Java 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章