02. 锁粒度的优化
锁粒度的优化
优化锁的粒度是根据实际的代码逻辑来进行判断,分为锁粒度的细化和锁粒度的粗化
锁粒度的细化
举个简单的例子,
但是减小锁的粒度也带来了新的问题,当锁粒度过于小的时候,获取全局锁消耗的资源也相应增加,以
锁粒度的粗化
在一般情况下,为了保证多线程之间的高效并发,会要求线程持有锁的时间尽量短,但是过度的细化会产生大量的申请和释放锁的操作,这对性能的影响也是非常大的。
for(int i = 0; i < 10000; i++) {
synchronized(this) {
todo();
}
}
synchronized(this) {
for(int i = 0; i < 10000; i++) {
todo();
}
}