0

奇怪的是,Java Doc说:为什么LockSupport Java提供但不实用

这些方法被设计用来作为工具,用于创建 更高级别的同步实用程序,而本身不是大多数 有用并发控制应用程序。

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

+0

不知道这应该不是最好去programmers.stackexchange。换句话说,你打算解决什么问题? – GhostCat

+0

只是强调卡亚曼已经说过的话; 'LockSupport' _is_非常有用,但你可以用它做的大部分聪明的事情已经在开源库中完成了。如果您发现自己想要使用'LockSupport',您应该首先尝试找到一些更适合或简化设计的更高级同步类。机会很好,你会找到一个。 –

回答

3

它在java.util.concurrent包中被许多类使用,如Javadoc中所述。除非您创建自己的高级并发类,否则您不应该(或者说您不需要)使用它,因为有大量随时可用的易于使用的类可以完成您想要的任务,而不会去“裸机”。

1

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

看通过Java并发类的源代码,以找到在使用类:

  • 这些都是那种情景,其中LockSupport是有用的例子。

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

为了让您一开始,LockSupport在标准类库以下类(Java 8)使用:

  • java.util.concurrent.Exchanger
  • 的java.util.concurrent .CompletableFuture
  • java.util.concurrent.SynchronousQueue中
  • java.util.concurrent.ConcurrentHashMap中
  • JA va.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
相关问题