C# Java中任务并行库的等价性
我想Java中没有任务并行库(在.NET4.0中)的等价物。这是真的吗?.NET的这个特性有哪些改进是Java并发所没有的。Java有这个包,还有一个。Fork/join在Java7中,但可以与Java6一起使用 Brian Goetz和其他人写了一本关于Java并发性的好书。(HJ lib)是Habanero Java(HJ)的新库实现,这是一种正在开发的教学并行编程模型。HJ lib能够表达多种不同形式的并行模式,包括数据并行、管道并行、流并行、循环并行和分治并行 HJ lib在单个编程模型中集成了广泛的并行编程结构(例如,异步任务、未来、数据驱动任务、forall、屏障、相量器、事务、参与者),支持这些结构的独特组合(例如,任务和参与者并行性的嵌套组合) HJ库是使用构建的,可以在任何Java8JVM上运行。旧的JVM可以通过依赖外部字节码转换工具来实现兼容性。HJ运行时负责协调HJ任务的创建、执行和终止,并具有工作共享和工作窃取调度器 HJ lib对于教育工作者来说也是一个很有吸引力的工具,赖斯大学提供了大量的二年级教育资源。这些资源还可用于了解库API。API的Javadoc是 下面是一个简单的HelloWorld版本:C# Java中任务并行库的等价性,c#,java,concurrency,task-parallel-library,C#,Java,Concurrency,Task Parallel Library,我想Java中没有任务并行库(在.NET4.0中)的等价物。这是真的吗?.NET的这个特性有哪些改进是Java并发所没有的。Java有这个包,还有一个。Fork/join在Java7中,但可以与Java6一起使用 Brian Goetz和其他人写了一本关于Java并发性的好书。(HJ lib)是Habanero Java(HJ)的新库实现,这是一种正在开发的教学并行编程模型。HJ lib能够表达多种不同形式的并行模式,包括数据并行、管道并行、流并行、循环并行和分治并行 HJ lib在单个编程模型
import static edu.rice.hj.Module1.*;
public class HelloWorld {
public static void main(final String[] args) {
launchHabaneroApp(() -> {
finish(() -> {
async(() -> System.out.println("Hello"));
async(() -> System.out.println("World"));
async(() -> System.out.println("in"));
async(() -> System.out.println("HJ-lib"));
});
});
}
}
有关各种并行结构的更多示例,请参见。是。Java没有与任务并行库TPL(属于.NET4.0)等价的东西。你的问题是对的(主单词-NET4.0)。TPL是“共享的”—通用统一.NET库,适用于任何.NET应用程序。这意味着您可以使用真正的异步(非阻塞UI)方法为任何.NET应用程序(WPF、WinForms、Xamarin.Forms、ASP.NET等)提供单个共享异步逻辑。Java没有。JavaFX有特殊的非阻塞任务类、Swing-BackgroundWorkers、Android自己的方法。。。因此命名为util.concurrency的Java包没有任何不可冻结的UI(JavaFX、Swing)解决方案 据我所知,Java中没有等价物 我以TPL为灵感编写了一个Java任务库。它不支持第三方物流的所有功能,但符合我当时的要求 Github:
Maven:fork/join框架与任务并行库有什么关系吗?我不是.NET开发人员,但从我读到的关于TPL的内容来看(例如,这个:),fork/join似乎与TPL有很多共同之处。例如,“TPL动态地扩展并发度,以最有效地使用所有可用的处理器。”相比之下,这来自fork/join文档:“fork/join处理的候选对象主要包括那些可以使用并行分治技术表示的对象:……将其一分为二(或更多)部分,然后并行解决这些部分”通过链接提供的示例章节非常好。这让我想得到这本书,但它最后一次出版是在2006年,所以我不确定它的最新程度。这个答案是正确的。如果您对使用promises和futures(即,这个然后那个)进行合成感兴趣,我想补充一下,看看JDeferred或Bolts框架。是否有一本好书的2019年(几天后)更新?非常感谢。