公平锁和非公平锁的对比
2020-07-18 本文已影响0人
水千里
1、公平锁
定义:多个线程按照先到先得的策略获取锁。
优点:所有线程都有机会获得锁,不会饿死
缺点:由于所有线程都会经历阻塞态,因此唤醒阻塞线程的开销会很大。
2、非公平锁
定义:所有的线程拼运气,谁运气好,谁就获取到锁
优点:可以减少CPU唤醒线程的开销,整体的吞吐效率会高
缺点:可能会有线程长时间甚至永远获取不到锁,导致饿死。
1、公平锁
定义:多个线程按照先到先得的策略获取锁。
优点:所有线程都有机会获得锁,不会饿死
缺点:由于所有线程都会经历阻塞态,因此唤醒阻塞线程的开销会很大。
2、非公平锁
定义:所有的线程拼运气,谁运气好,谁就获取到锁
优点:可以减少CPU唤醒线程的开销,整体的吞吐效率会高
缺点:可能会有线程长时间甚至永远获取不到锁,导致饿死。