Java除了使用关键字synchronized外,还可以使用ReentrantLock实现独占锁的功能。而且ReentrantLock相比synchronized而言功能更加丰富,使用起来更为灵活,也更适合复杂的并发场景。

 

ReentrantLock和synchronized对比

  1. synchronized是独占锁,加锁和解锁的过程自动进行,易于操作,但不够灵活。ReentrantLock也是独占锁,加锁和解锁的过程需要手动进行,不易操作,但非常灵活。

  2. synchronized可重入,因为加锁和解锁自动进行,不必担心最后是否释放锁;ReentrantLock也可重入,但加锁和解锁需要手动进行,且次数需一样,否则其他线程无法获得锁。

  3. synchronized不可响应中断,一个线程获取不到锁就一直等着;ReentrantLock可以相应中断。

 

相关文章:

  • 2021-05-13
  • 2021-05-07
  • 2021-07-23
  • 2021-09-22
  • 2021-10-23
  • 2021-06-06
  • 2021-07-12
猜你喜欢
  • 2021-10-14
  • 2022-12-23
  • 2022-12-23
  • 2021-08-17
  • 2022-12-23
  • 2021-12-18
  • 2021-10-31
相关资源
相似解决方案