java基础集合框架
anthony4515
一步一个脚印
展开
-
浅谈 synchronized 和 ReentrantLock 的区别
① 两者都是可重入锁 “可重入锁”概念是:自己可以再次获取自己的内部锁。比如,一个线程获得了某个对象的锁,此时这个对象锁还没有释放,当其再次想要获取这个对象的锁时,还可以再获取的;如果不可锁重入的话,就会造成死锁;同一个线程每次获取锁,锁的计数器都自增1,所以要等到锁的计数器下降为0时,才能最终释放锁。 ② synchronized 依赖于 JVM,而 ReentrantLock 依赖于 API synchronized 是依赖于 JVM 实现的,Java 虚拟机团队在 JDK1.6 为 synchr原创 2020-08-26 10:13:51 · 92 阅读 · 0 评论 -
被问的比较多的StringBuffer与StringBuilder的区别
一问道StringBuffer与StringBuilder的区别,张口就来StringBuffer是线程安全的,因为它相关方法都加了synchronized 关键字,StringBuilder线程不安全。没错,确实如此,但是我们查看过源码会发现StringBuffer是从jdk1.0就开始了,StringBuilder是从jdk1.5开始的。于是我就产生这样一个疑问,既然已经有了StringBuffer,为什么jdk5又出了一个StringBuilder呢,也就是单线程时候StringBuffer与Str.原创 2020-08-13 18:40:25 · 98 阅读 · 0 评论