首页 > 代码库 > Java严选

Java严选

1,假如有两个线程,一个线程A,一个线程B都会访问一个加锁方法,可能存在并发情况,但是线程B访问频繁,线程A访问次数很少,问如何优化。(然后面试官说有了解过重度锁和轻度锁吗)

a,竞争资源不激烈,选择Synchronized:

在资源竞争不是很激烈的情况下,Synchronized的性能要优于ReetrantLock,

但是在资源竞争很激烈的情况下,Synchronized的性能会下降几十倍,但是ReetrantLock的性能能维持常态

b,优化,假设线程A和B不会并发访问,如果发生了并发,再膨胀为重量级锁:

轻量级锁的核心思想就是“被加锁的代码不会发生并发,如果发生并发,那就膨胀成重量级锁

Java严选