我猜在.NET中没有任务并行库(Java4.0)的等价物。这是真的吗?.NET的这一特性提供了哪些Java并发没有提供的改进。
发布于 2010-11-07 20:01:41
Java有java.util.concurrent包,还有fork/join framework。Fork/join在Java7中是scheduled for inclusion,但是可以是downloaded now并用于Java6。
Brian Goetz和其他人写的Java Concurrency in Practice是一本用Java语言处理并发的好书。
发布于 2014-05-29 08:07:06
Habanero-Java library (HJ-lib)是Rice University开发的教学并行编程模型Habanero-Java (HJ)的新库实现。HJ-lib能够表达多种不同形式的并行模式,包括数据并行、流水线并行、流并行、循环并行和分而治之的并行。
HJ-lib在单个编程模型中集成了广泛的并行编程构造(例如,异步任务、未来、数据驱动任务、forall、障碍、相位、事务、参与者),该编程模型使得能够实现这些构造的唯一组合(例如,任务和参与者并行性的嵌套组合)。
HJ-lib是使用lambda expressions构建的,可以在任何Java8JVM上运行。较旧的JVM可以通过依赖外部字节码转换工具来实现兼容性。HJ运行时负责编排HJ任务的创建、执行和终止,并且具有工作共享和工作窃取调度器。
对于教育工作者来说,HJ-lib也是一个有吸引力的工具,可以从莱斯大学提供的大二水平的COMP 322 course中获得大量的教育资源。这些资源还可以用来了解库API。接口的Javadoc为also available。
下面是一个简单的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"));
});
});
}
}COMP 322 course website提供了各种并行结构的更多示例。
发布于 2019-03-12 20:52:38
据我所知,在Java中没有类似的东西。
我写了一个受TPL启发的Java任务库。它并不支持TPL的所有特性,但符合我当时的要求。
Github:https://github.com/BrunoMNDantas/TPL4J
Maven:https://mvnrepository.com/artifact/com.github.brunomndantas/tpl4j
https://stackoverflow.com/questions/4117579
复制相似问题