• 可重入
  • 拥有读锁的线程不可以获得写锁
  • 拥有写锁的线程可以在不释放写锁的情况下先获得读锁再释放写锁(可降级)
  • 非公平锁:允许插队,吞吐量更高,但可能导致线程饥饿
  • 公平锁:严格按照 FIFO 来授予锁