Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Java中任务并行库的等价性_C#_Java_Concurrency_Task Parallel Library - Fatal编程技术网

C# Java中任务并行库的等价性

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在单个编程模型

我想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版本:

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年(几天后)更新?非常感谢。