Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!

2021 java面试题 PDF 下载


分享到:
时间:2021-04-28 09:28来源:http://www.java1234.com 作者:转载  侵权举报
2021 java面试题 PDF 下载
失效链接处理
2021 java面试题 PDF 下载


本站整理下载:
提取码:xq4e 
 
 
相关截图:
 
主要内容:

2021面试题
 
1、volatile 轻量级的同步模型
可见性、不保证原子性、禁止指令重排序
 
多线程环境中可以用volatile避免指令重排
 
相当于内存屏障,指令前后cpu不能重排,刷出cpu缓存
 
cpu指令 storestore+storeload\loadload
 
使用场景:
最适用一个线程写,多个线程读的
单例private volatile static Singleton instace;不然容易出现指令重排,会有安全隐患
 
if(instance==null){
 sychrized(class){
   if(instance==null){
new instance();//不加volatile可能出现指令重排
   }
 }
|
 
new对象,分3步,分配内存,初始化对象,设置指针
 
指令重排只保证单线程串行安全
 
您只能在有限的一些情形下使用 volatile 变量替代锁。要使 volatile 变量提供理想的线程安全,必须同时满足下面两个条件:
对变量的写操作不依赖于当前值。
该变量没有包含在具有其他变量的不变式中
 
 
2\
jmm java内存模型可见,原子,有序
 
3、cas
compareAndSet第一个是期望已经的值和真实值一样,那么修改为 第二个参数是打算修改成的值。
 
4、unsafe 
native 、rt.jar
cas CPU并发原语,CPU原子指令,底层汇编
 
5、atomicInteger getAndINcrement
依靠cas指令原语,先主内存拷贝到程序内存,再比较cas 跟期望是否一致,一样的话,就设置值。否则循环继续循环。
 
6、
cas没用锁,synchrinized加锁了
cas思想,自旋
7、cas缺点
循环时间长,开销大;
只能保证一个共享遍历的原子操作
引出来ABA问题
8、ABA问题解决?
原子引用更新AtomicReference比较的是对象的地址 
AtomicStampReference
9\arraylist1.2
初始化object[]空数组,扩容原来的一半
add没加锁,所以多线程concurrentmodificationException
vector1.0 add有锁synchroized
Collections.synchroziedList();
 
CopyOnWriteArrayList 高并发变量都需要volatile
 
ReentrantLock lock.lock() unlock()
 
HashSet->Collections.synchronizedSet->CopyOnWriteArraySet
 
CopyOnWriteArraySet使用CopyOnWriteArrayList
 
HashSet底层就是hashmap  16,0.75,add是map put(e,object())
 
ConcurrentHashMap
 
String str传参数时,不改变原有值
 
ReentrantLock默认非公平锁
公平锁按申请顺序获取锁
非公平锁有可能造成优先级翻转或者饥饿,有点吞吐量大
synchronized非公平锁
 
可重入锁也就递归锁,非公平 比如ReentrantLock synchronized,一个线程获得锁后,内层函数仍然获取该锁,外层已经有所后,内层自动获取锁,是同一把锁。作用防止死锁。
 
ReentrantLock 2个lock,2个unlock时 运行正常

 
 
------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐