并发编程-基础篇(十三)-锁的概念

 

并发编程-基础篇(十三)-锁的概念_第1张图片

 

ReentrantLock 提供了公平锁 和非公平锁的实现,

  1. 公平锁: ReentrantLock pairLock =new ReentrantLock(true),公平锁获取锁的顺序是按照线程请求锁的时间早晚来决定的,也就是先到先得
  2. 非公平锁: ReentrantLock pairLock =new ReentrantLock(fasle),默认非公平锁,非公平锁则在运行时闯入,不定是先到先得

独占锁和共享锁的实现:

  1. ReentrantLock就是以独占方式实现的
  2. ReadWriteLock 独享锁是共享锁

可重入锁和非可重入锁:

  1. 可重入锁:当一个线程要获取一个被其他线程持有的独占锁时,该线程就会被阻塞,那么当一个线程再次获取它自己已经获取的锁时不会被阻塞,那么说该锁是可重入的,synchronized内部锁是可重入锁

你可能感兴趣的:(多线程)