volatile关键字

本文探讨了volatile变量在多线程中的关键作用,它如何确保线程间的数据同步,并强调了其与synchronized的区别,即volatile提供了一种更轻量级的内存可见性保证。非volatile变量的读写行为可能导致缓存不一致,而volatile强制每次读取都从内存获取,避免了这个问题。
摘要由CSDN通过智能技术生成

1.变量可见性,线程共享:volatile 变量,用来确保将变量的更新操作通知到其他线程

2.禁止重排序:在访问 volatile 变量时不会执行加锁操作,因此也就不会使执行线程阻塞,因此 volatile 变量是一 种比 sychronized 关键字更轻量级的同步机制

当对非 volatile 变量进行读写的时候,每个线程先从内存拷贝变量到 CPU 缓存中。如果计算机有多个 CPU,每个线程可能在不同的 CPU 上被处理,这意味着每个线程可以拷贝到不同的 CPU cache 中。而 声明变量是 volatile 的, JVM 保证了每次读变量都从内存中读,跳过 CPU cache 这一步。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值