synchronized相比reentrantLock性能不好原因分析:
synchronized为重量级锁时:
猜测1 syn锁的获取和释放需要操作系统的互斥量(mutex)实现,均需要用户态和内核态的切换;lock是CAS获取和释放的锁,无需切换
猜测2 syn和lock底层都有等待的线程集合,都是阻塞。syn的阻塞是系统来处理的,需用户态和内核态的准换;lock的阻塞是执行jdk中的代码来阻塞的,应该是一直是在用户态的
同意?
synchronized和lock自旋锁 线程被阻塞后便进入内核Linux调度状态,这个会导致系统在用户态和内核态来回切换,严重影响锁的性能 缓解上述问题的办法便是自旋,其原理是:当发生争用时,若Owner线...