为什么LockSupport由Java提供但没有用处

时间:2016-06-13 11:48:15

标签: java multithreading synchronization locking language-concepts

奇怪的是,Java Doc说:

  

这些方法旨在用作创建工具   更高级别的同步实用程序,而不是它们本身   对大多数并发控制应用程序很有用。

是否有任何示例/场景来说明JavaSupport是否有用?

2 个答案:

答案 0 :(得分:3)

它被java.util.concurrent包中的许多类使用,如Javadoc中所述。除非您正在创建自己的高级并发类,否则您不应该(或者更确切地说,您不需要)使用它,因为有很多易于使用的易用类可以完成你想要的东西,而不需要直接使用"裸机"。

答案 1 :(得分:1)

  

是否有任何示例/场景来说明[LockSupport]是否有用?

查看Java并发类的源代码以查找类的使用位置:

  • 这些是LockSupport有用的场景示例。

  • 他们可能也会在你引用的javadoc中说明评论。这些原语是低级的,难以直接使用。

为了帮助您入门,LockSupport用于标准类库(Java 8)的以下类中:

  • java.util.concurrent.Exchanger
  • java.util.concurrent.CompletableFuture
  • java.util.concurrent.SynchronousQueue中
  • java.util.concurrent.ConcurrentHashMap中
  • java.util.concurrent.locks.StampedLock
  • java.util.concurrent.locks.AbstractQueuedSynchronizer中
  • java.util.concurrent.locks.AbstractQueuedLongSynchronizer
  • java.util.concurrent.LinkedTransferQueue
  • java.util.concurrent.FutureTask中
  • java.util.concurrent.ForkJoinPool
  • java.util.concurrent.Phaser