首页
面试
文章归档
Java
Linux
常用工具收集
外部系统
Bing壁纸
1
ThreadLocal的底层原理
2
Sychronized和ReentrantLock的区别
3
CAS ABA问题
4
CAS的原理
5
Synchronized的偏向锁、轻量级锁、重量级锁
Monkey部落
Monkey部落,分享技术、经验、遇到的问题及解决方法,欢迎大家互相讨论分享。
累计撰写
59
篇文章
累计创建
36
个标签
累计收到
2
条评论
栏目
首页
面试
文章归档
Java
Linux
常用工具收集
外部系统
Bing壁纸
搜索
标签搜索
面试
windows
tomcat
frp
网络安全
redis
Shell
Excel
Jenkins
springboot
navicat
chrome
markdown
halo
jrebel
工作流、activity、flowable
nas
视频、推流、拉流、ZlmediaKit
Zerotier
git
docker
Nginx
工具
javascript
Java
Element
Linux
shiro
vue
MongoDB
mac
uni
mysql
vscode
idea
微信小程序
目 录
CONTENT
以下是
面试
相关的文章
2024-04-08
ThreadLocal的底层原理
ThreadLocal的底层原理ThreadLocal是Java中所提供的线程本地存储机制,可以利用该机制的将数据缓存在某个线程内部,该线程在任意时刻、任意方法中获取缓存的数据。ThreadLocal底层是通过ThreadLocalMap来实现的,每个Thread对象(注意不是ThreadLocal
2024-04-08
950
0
0
面试
2024-04-08
Sychronized和ReentrantLock的区别
Sychronized和ReentrantLock的区别sychronized是一个关键字,ReentrantLock是一个类sychronized会自动的加锁和释放锁,ReentrantLock需要程序员手动加锁和释放锁sychronized的底层是JVM层面的锁,ReentrantLock是AP
2024-04-08
720
0
0
面试
2024-04-08
CAS ABA问题
CAS ABA问题描述多个线程对某一个原子类进行操作时,某个线程将原值A改成了B,又改回了A,此时另一个线程也对该值进行操作,发现值仍然是A,就会认为它没有被修改过,从而执行CAS操作,但是此时A并不是原来的A,这个就是ABA问题。解决使用版本号或者时间戳来表示数据的变化,JUC包中AtomicSt
2024-04-08
527
0
0
面试
2024-04-08
CAS的原理
CAS的原理CAS(compare and swap) 是一种乐观的并发控制机制,它的核心原理是基于硬件层面的原子性保证。CAS操作包含三个操作数:内存位置(V)、预期原值(A)、新值(B)。工作原理:在将新值写入内存之前,CAS操作会先比较内存位置的值是否与预期原值想匹配。如果内存位置的值与预期原
2024-04-08
560
0
0
面试
2024-04-08
Synchronized的偏向锁、轻量级锁、重量级锁
Synchronized的偏向锁、轻量级锁、重量级锁偏向锁:在锁对象的对象头中记录一下当前获取到的该锁的线程ID,该线程下次如果又来获取该锁就可以直接获取到了。轻量级锁:由偏向锁升级而来,当一个线程获取到锁之后,此时这把锁时偏向锁,此时如果有第二个线程来竞争锁,偏向锁就会升级为轻量级锁,之所以叫轻量
2024-04-08
455
0
0
面试
2024-04-08
ReentrantLock中的公平锁和非公平锁的底层实现
ReentrantLock中的公平锁和非公平锁的底层实现首先不管是公平锁还是非公平锁,它们的底层实现都会使用AQS来进行排队,它们的区别在于:线程在使用lock()方法加锁时,如果是非公平锁,会先检查AQS队列中是否存在线程在排队,如果有线程在排队,则当前线程也进行排队,如果是非公平锁,则不去检查是
2024-04-08
74
0
0
面试
2024-04-08
ReentrantLock中tryLock()和lock()方法的区别
ReentrantLock中tryLock()和lock()方法的区别tryLock()表示尝试加锁,可能加到,也可能加不到,该方法不会阻塞线程,如果加到锁则返回true,没有加到则返回falselock()表示阻塞加锁,线程会阻塞直到加到锁,方法没有返回值
2024-04-08
63
0
0
面试
2024-04-08
CountDownLatch和Semaphore的区别和底层原理
CountDownLatch和Semaphore的区别和底层原理CountDownLatch表示计数器,可以给CountDownLatch设置一个数字,一个线程调用CountDownLatch的await()方法将会阻塞,其他线程可以调用CountDownLatch的countDown()方法来对C
2024-04-08
75
0
0
面试
2024-04-08
重载和重写的区别
重载和重写的区别重载:发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同、方法返回值和访问修饰符可以不同,发生在编译时。重写:发生在父子类中,方法名、参数列表必须相同,返回值范围小于等于父类,抛出的一场范围小于等于父类,访问修饰符范围大于等于父类,如果父类方法访问修饰符为privat
2024-04-08
61
0
0
面试
2024-04-08
简述线程池原理,FixedThreadPool用的阻塞队列是什么
简述线程池原理,FixedThreadPool用的阻塞队列是什么线程池内部是通过队列+线程实现的,当我们利用线程池执行任务时:如果此时线程池中的数量小于corePoolSize,即使线程池中的线程都处于空闲状态,也要创建新的线程来处理被添加的任务。如果此时线程池中的数量等于corePoolSize,
2024-04-08
99
0
0
面试
1
2