为什么会有公平锁/非公平锁的设计?为什么默认非公平
1.恢复挂起的线程到真正锁的获取还是有时间差的,从开发人员来看这个时间微乎其微,但是从CPU的角度来看,这个时间差存在的还是很明显的。所以非公平锁能够充分的利用CPU的时间片,尽量减少CPU空虚状态时间。
2.使用多线程很重要的考量点是线程切换的开销,当采用非公平锁时,当1个线程请求获取同步状态,然后释放同步状态,所以刚释放锁的线程此刻再次获取同步状态的概率就变得非常大,所以就减少了线程的开销。
为什么会有公平锁/非公平锁的设计?为什么默认非公平
1.恢复挂起的线程到真正锁的获取还是有时间差的,从开发人员来看这个时间微乎其微,但是从CPU的角度来看,这个时间差存在的还是很明显的。所以非公平锁能够充分的利用CPU的时间片,尽量减少CPU空虚状态时间。
2.使用多线程很重要的考量点是线程切换的开销,当采用非公平锁时,当1个线程请求获取同步状态,然后释放同步状态,所以刚释放锁的线程此刻再次获取同步状态的概率就变得非常大,所以就减少了线程的开销。