volatile等

volatile
和synchronized一起比较会好理解。同一个变量,什么都不用,各线程处理时,变量值在同一时间,可能是不同的;volatile能保证同一时间,变量值是一致的;synchronized能保证修改变量值是一个一个线程排队来的(比如同一时间,线程1和线程2都读取了变量i=1,没有问题,但是不用synchronized,就会同时修改i,如果是i=6,这样是没有问题的,因为不依赖任何东西,如果是i++,就非常有问题了,两个线程,++两次,应该i=3,由于没有synchronized,各搞各的,可能最后值为2)。

volatile保证读一致,synchronized保证读写一致。
volatile修饰变量,synchronized修改方法/代码块。

还有一点对理解很重要,java有主内存,就是说每个线程会把变量保存在线程局部,用了volatile就只会保存在共享。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值