- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
来源:
public static void invokeAll(ForkJoinTask<?> t1, ForkJoinTask<?> t2) {
t2.fork();
t1.invoke();
t2.join();
}
为什么不使用:
public static void invokeAll(ForkJoinTask<?> t1, ForkJoinTask<?> t2) {
t1.fork();
t2.fork();
t1.join();
t2.join();
}
最佳答案
根据the documentation for ForkJoinTask
:
Method
invoke()
is semantically equivalent tofork(); join()
but always attempts to begin execution in the current thread.
因此,带有 invoke()
的版本与您的版本执行相同的操作,但不是将两个作业传递给两个不同的线程,而是将 t2
传递给另一个线程并尝试处理 t1 本身。这样传递的次数更少,涉及的线程也更少。
在您的版本中,当前线程除了等待 fork()
完成这两个任务之外什么都不做。
关于java - forkjointask.java invokeall(t1,t2)方法,这个方法源码为什么不使用double join()方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31227378/
我有一个长时间运行的计算,已与 Java's ForkJoinTask 分开. Java's FutureTask提供了一个模板方法done()。 Overriding this method all
我正在尝试 Java ForkJoin 框架并编写了一个程序来处理大型数据列表。 众所周知,ForkJoinTask 中总是设置字段阈值来指出数据列表分区的最小数量。 问题是,阈值设置多大或小会带来更
在 Java 8 中有两种启动异步计算的方法 - CompletableFuture和 ForkJoinTask .它们看起来都非常相似 - CompletableFuture 的内部类甚至扩展 Fo
JavaDoc ForkJoinTask 说: [R]eturns (joins) should be performed innermost-first. For example, a.fork()
前段时间我发现了 Scala Async Project .问题是:这个不能通过普通函数(没有宏扩展)实现的 async block 有什么神奇之处? 让我们看一下介绍中的第一个例子: import
API 说:“方法invokeAll(有多个版本)执行最常见的并行调用形式: fork 一组任务并将它们全部连接起来。” 所以我的假设是,如果我使用 invokeAll(),我就不再需要使用 fork
当我在阅读时 the javadoc about ForkJoinTask我遇到了以下声明: This method may be invoked only from within ForkJoinP
我目前正在评估各种并发解决方案来解决业务问题。该用例类似于“尴尬并行”算法。 基本上,对于单个用户请求,我们需要在计算响应之前从多个不同的数据源检索数据。目前,所有 3 个 DAO 调用都是串行进行的
是否有计划利用 java 7 util.concurrent 的 ForkJoin API 或在 Akka 中公开类似的 API? 最佳答案 我们一直在与 Doug Lea 合作改进 Akka 的 F
“在 ForkJoinPool 中运行的任务的抽象基类。ForkJoinTask 是一个类似线程的实体,比普通线程轻得多。大量的任务和子任务可能由中的少量实际线程托管一个 ForkJoinPool,以
我正在阅读 Java ForkJoin 框架。不直接在 ForkJoinTask 的实现上调用 invoke()(例如 RecursiveTask),而是实例化 ForkJoinPool 有什么额外的
假设我们扩展了一个名为 MyRecursiveTask 的 RecursiveTask。 然后在 forkJoinTask 的范围内创建两个子任务: MyRecursiveTask t1 = new
我一直在使用Java7的Fork/Join并发框架,效果不错。我终于开始阅读 ForkJoinTask 的 API 的 javadoc,它包含以下段落: ForkJoinTasks should pe
来源: public static void invokeAll(ForkJoinTask t1, ForkJoinTask t2) { t2.fork(); t1.invoke();
这是 javadoc对于两者: get():必要时等待计算完成,然后检索其结果。 invoke():开始执行这个任务,如有必要,等待其完成,并返回其结果,或者抛出一个(未经检查的)RuntimeExc
我是一名优秀的程序员,十分优秀!