java并发编程笔记

这里只是用于记录我学习java并发编程过程中的一些心得和重要的知识点.

1:volatile通常被当做表示完成,中断,状态的标记,但是不足以使自增操作原子化(实测,不行),加锁可以保证原子性和可见性,但是volatile只能保证可见性.

2:在没有同步的操作中,线程进行读取变量,很有可能读取的是一个过期的量,但是这个量是过程中某个线程实际得出的值,而不是一个凭空而来的值,这样的保证称为"最低限的安全性",但是对于没有声明volatile的64位的long和double变量来说,是不行的,这个jvm对64位double和long变量的操作有关,你可能会得到一个凭空的数.

3:不可变对象的理解:一开始我并不能理解并发中使用不可变对象,如果不可变,那么我使用这个对象是为了什么呢?但是后来我理解了,这个不可变并不是真的不可变,如果类是不可变的,而我在声明和实例化的时候不加final修饰,那么类本身的属性是不可变的(其实是不加setter方法的private字段),但是对这个对象的引用是可变的,我完全可以重新指向,这样也就间接实现了同步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值