2021-01-04 juc &jdk1.8

juc
volatile关键字:jmm中每个线程会把主存中的数据拿到自己的缓存中,造成个个线程间数据不一致,不可见,volatile保证了一个线程修改了主存的数据,会通知其他线程重新获取。防止重排,在volatile修饰的语句前后设置内存屏障,防止CPU指令重排,例子:双重判空懒汉单例模式,因指令重排可能会制造出未初始化完全的对象,造成代码错误。
synchronized关键字:
锁升级机制:默认是偏向锁,只有一个线程在运行,来线程竞争时,转为轻量级锁(cas自旋锁),自旋一定时间或次数时,省级为重量级锁(用户太转内核态,向操作系统申请锁)
aqs:一个标志加一个队列。当第一次有线程来竞争锁时,大家通过强锁,抢到锁的执行,没抢到的让出CPU,进入队列,等待唤醒

jdk1.8新特性
lambda表达式:函数式接口
stream:对数组和集合的处理
localdatetime:时间格式化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值