为什么Java提供了LockSupport却没有用

Why is LockSupport provided by Java but not useful

奇怪的是,Java Doc 说:

These methods are designed to be used as tools for creating higher-level synchronization utilities, and are not in themselves useful for most concurrency control applications.

有没有example/scenario说明JavaSupport有用的?

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

Is there any example/scenario to illustrate [LockSupport] is useful?

查看Java并发classes的源码,找到class的用处:

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

  • 他们可能还说明了您引用的 javadoc 中的注释。这些原语是低级的,很难直接使用。

为了帮助您入门,LockSupport 在标准 class 库 (Java 8) 中的以下 classes 中使用:

  • 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