ReentrantLock和AbstractQueuedSynchronizer之间的区别

时间:2013-09-04 14:57:22

标签: java multithreading concurrency

有人可以给我一些例子来区分ReentrantLock和AbstractQueuedSynchronizer,在什么情况下,我应该选择ReentrantLock,还是应该使用AbstractQueuedSynchronizer。

1 个答案:

答案 0 :(得分:2)

  

何时应该使用AbstractQueuedSynchronizer

可能永远不会。请在评论链接中查看我的答案,以了解AQS的用途。 AQS是一个为并发构造提供支持的类。如果您没有编写某种低级并发工具,则不应使用AQS。大多数(如果不是全部)j.u.c中提供的障碍都应该足够了。

  

有人可以给我一些例子来区分ReentrantLock和   的AbstractQueuedSynchronizer

更好的问题是区分ReentrantLock和

之间的差异
  • 信号量
  • 的CyclicBarrier
  • 的ReentrantReadWriteLock
  • CountDownLatch

这些类中的每一个都使用AQS进行并发支持。