问题标签 [fork-join]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1436 浏览

java - Fork-join 中的内存可见性

Brian Goetz 在http://www.ibm.com/developerworks/java/library/j-jtp03048.html上写了一篇关于 fork-join 的好文章。在其中,他列出了一种使用 fork-join 机制的合并排序算法,其中他在数组的两侧并行执行排序,然后合并结果。

该算法同时对同一数组的两个不同部分进行排序。为什么不是 AtomicIntegerArray 或其他保持可见性所必需的机制?有什么保证一个线程会看到另一个线程完成的写入,或者这是一个微妙的错误?作为后续,Scala 的 ForkJoinScheduler 是否也做出了这种保证?

谢谢!

0 投票
2 回答
317 浏览

c++ - Linux 中跨进程的文件 I/O?

所以,我有一个 Linux 进程,我试图在其中管理磁带上的一些文件。我有以下代码尝试从磁带上的当前存档中提取文件 catalog.xml 并将其复制到固定位置(最终,我将解析该文件并对结果进行一些处理)。但是,我的代码间歇性地无法正常工作。tar 命令总是成功,(如果我检查文件系统,我会看到 catalog.xml 文件),但有时我的后续检查以查看文件是否存在会返回 false。我在做一些明显错误的事情吗?似乎我可能在 fork()ed 进程返回和该进程的结果在文件系统上可见之间遇到了竞争条件 - 我需要进行一些调用吗?

而且我得到“文件存在!” 或“文件不存在!”,似乎是随机的。

其他说明: 关于失败案例:

  • 如果我执行 a stat ("/tmp/catalog.xml"),我会得到 -1 的返回值,并将 errno 设置为 ENOENT。
  • tar 命令(使用 -v 标志运行)产生预期的一行输出(“catalog.xml”)

/tmp 是本地 tmpfs 文件系统;磁带机是本地设备。我在 x86_64 机器上使用带有 g++ 4.1.2 的 2.6.30.9 Linux 内核。

提前致谢!

0 投票
1 回答
468 浏览

groovy - GParsPool runForkJoin 中的 ConcurrentException/NullPointerException

对于一点上下文,我正在尝试使用出色的 GParsPool Fork/Join 支持来解决 Project Euler问题 31

为此,我编写了愚蠢的代码:

不幸的是,每次我尝试运行它时,我都会得到以下堆栈跟踪:

我知道这与我想利用 Fork/Join 作为递归“扁平化”机制的方式有关,但我在这里做的错误是什么?

0 投票
2 回答
544 浏览

java - java fork -join 框架如何将任务分配到处理器上?

谁能解释java fork-join框架如何将任务分配给处理器。我们能控制它吗?

0 投票
2 回答
6554 浏览

java - 什么是 ForkJoinPool 异步模式

ForkJoinPool 的异步模式是什么意思?Javadoc 提到它使队列(它是每线程队列吗?)FIFO 而不是 LIFO。在实践中意味着什么?

0 投票
2 回答
515 浏览

java - 是否有任何用于 Java 1.5 的 fork join 框架的 backport-util?

当引入并发工具时,就有了 backport-util。对于 Java 1.6,有一个 fork/join 框架的实现http://www.cs.washington.edu/homes/djg/teachingMaterials/grossmanSPAC_forkJoinFramework.html

Java 1.5 有什么替代方案吗?

0 投票
3 回答
6082 浏览

c - c fork,exec,getpid 问题

我是 C 语言和 Linux 的新手。我有一个与 fork()、getpid() 和 exec() 函数相关的问题。我使用 fork() 编写了 ac 程序,调用我的程序的代码如下“代码:

该程序的输出如下:

子进程被创建

这是子进程的试验

子进程被创建

这是子进程的试验

现在我的问题如下:

  1. 为什么程序的输出显示相同的东西两次?输出应该是“创建子进程,这是子进程的试验”
  2. 为什么输出不符合代码?
  3. 我们可以有一个程序,它有 4 个进程并且所有进程执行不同的任务,例如一个进程打印“我的名字”。一个进程打印“我的年龄”,另一个进程打印“我的地址?
  4. 如何在主函数中创建多个进程?
  5. 如何控制多个进程的执行?
  6. exec()功能有什么作用?任何人都可以用源代码解释我的工作exec()原理吗?fork()getpid()

请帮助这个新手。

0 投票
1 回答
273 浏览

workflow - 如何动态地将分支添加到并行活动

我有一个使用 wwf 实现的状态机,它将处理缩进流。想象一下,我们有一个用户注册的缩进,我们想向不同的供应商发送查询。查询的数量是多种多样的,取决于买方决定他想查询多少供应商。所以我的状态机进入了一个名为 Waiting for Inquiry 的状态,我需要在这里分叉,我在这个分叉之间有不同的状态(我想我有添加嵌套状态机)我正在添加一个并行活动,但是这个并行活动的分支取决于我上面提到的所选供应商。当我尝试动态添加分支时,我收到异常,因为工作流与持久化不匹配一。有什么解决办法吗?

0 投票
1 回答
293 浏览

java-7 - 有趣的分叉/连接或分而治之的例子

我们想在会议研讨会上展示新的 JDK7 Fork/Join 框架。为此,我们目前正在寻找一个有趣的例子,该框架可以做什么。

有一些很明显的,比如排序或矩阵计算,但还有更有趣的人们喜欢做的事情。例如,我们在 java 网站上发现了图像模糊,或者可能是天气预报或类似的东西?

如果域不太复杂,那么问题可以在几天内解决。

非常感谢任何输入。有什么想法或经验吗?

0 投票
0 回答
412 浏览

java - 为什么我的 fork/join 死锁?

考虑以下代码片段,它计算所有给定路径的大小。

为什么这段代码会死锁?除了可能与系统调用和 Java 框架的其他部分之外,线程之间没有交互。如果系统调用是问题,那么我该如何解决它,而不删除系统调用(它们很慢,因此需要并行化)?