gpt4 book ai didi

java - 在 Java 7 中实现并发和并行

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:32:29 26 4
gpt4 key购买 nike

作为我正在进行的一项研究的一部分,我正在探索使用 Scala 和 Clojure 等语言在 JVM 上实现并发的假定简单性。简单来说,我希望证明这些语言提供了比 Java 7 提供的更简单的并发结构。

因此,我希望能找到一些很好的引用资料来解释 Java 并发模型的复杂性。

除了向我指出 Google 的方向(我已经搜索过,但收效甚微),如果知情人士能为我提供一些好的引用资料,让我在这个领域开始,我将不胜感激。

谢谢

最佳答案

Java 不支持 lambda 表达式。创建内联回调(例如,用于完成异步调用)需要 5 行匿名类型样板。

这强烈地阻止了人们使用回调。这可能就是为什么 Java 7 仍然没有用于接受值的回调接口(interface)(与 RunnableCallbable 相对),而 C# 有一个 since 2005。 .

因此,JDK对异步操作没有任何真正的支持。
异步操作的关键是能够启动长时间运行的请求,并在它完成时运行回调,而不会在请求期间消耗线程。在 Java 中,您只能通过单独的线程调用来完成此操作 get()Future<V> 上.这将使用标准 API 的应用程序的并发性限制为您可以完全支持的线程数。

为了解决这个问题,Google 的 Guava 框架为了更好的 Java 代码引入了一个 ListenableFuture<V> interface它确实有完成回调。

像 Scala 这样的语言通过支持 lambda 表达式(compile to anonymous classes)并添加自己的 Promise 来解决这个问题。/Future类型。

关于java - 在 Java 7 中实现并发和并行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12208393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com