标签: fork-join

Java 7 ForkJoinTask和Akka 2.0

有没有计划利用java 7 util.concurrent的ForkJoin API,或者在Akka中公开类似的API?

java fork-join akka java-7

1
推荐指数
1
解决办法
1255
查看次数

使用 Fork 将错误从子级发送给父级

我有以下代码

// Parent.js

var cp = require('child_process');
var child = cp.fork('./pChild.js');

child.on('message', function(m) {
    // Receive results from child process
    console.log('received: ' + m);
});

// Send child process some work
child.send('First Fun');
Run Code Online (Sandbox Code Playgroud)
// pChild.js

process.on('message', function(m) {
console.log("Helloooooooooo from pChild.js")
// Pass results back to parent process
process.send("Fun1 complete");
});
Run Code Online (Sandbox Code Playgroud)

如何处理从 pChild.js 抛出的 parent 中的错误并终止进程?

fork fork-join node.js

1
推荐指数
1
解决办法
4014
查看次数

如何让 fork join/join_any 与循环一起工作

根据SV LRM 第 9.3.2 节

for(int j=1; j <=3; ++j)
fork
    automatic int k = j;
    begin
        .... # use k here
    end
join_none
Run Code Online (Sandbox Code Playgroud)

这是如何fork在循环中创建一个。我已经试过了,它有效。但是,如果我想创建 forkjoin而不是join_none在循环中,它不会按预期工作,而是按顺序工作。

我如何修改它以使用 a 来工作join,我希望我的所有叉子同时分叉,然后等待所有叉子完成(join)或其中一个完成(join_any)?

谢谢

system-verilog fork-join

1
推荐指数
1
解决办法
7612
查看次数

执行bitonic排序时java.lang.NoClassDefFoundError

我想使用java的fork join模型实现bitonic排序.这是分拣机的代码

import java.util.concurrent.RecursiveAction;

public class BitonicSortTask extends RecursiveAction
{
    private final int array[];
    private final int low;
    private final int high;
    private final int dir;

    public BitonicSortTask(int array[],int low,int high,int dir)
    {
        this.array = array;
        this.low = low;
        this.high = high;
        this.dir= dir;
    }

    @Override
    protected void compute()
    {
        if(high>1)
        {
            int temp = high/2;
            BitonicSortTask left = new BitonicSortTask(array, low, temp,1);
            BitonicSortTask right = new BitonicSortTask(array, temp+1,high,0);
            invokeAll(left, right);
            BitonicMerge(array, low, high, dir);
        }
    }

    private void BitonicMerge(int[] …
Run Code Online (Sandbox Code Playgroud)

java multithreading fork-join forkjoinpool

1
推荐指数
1
解决办法
1091
查看次数

为什么fork连接任务在公共fork连接池线程之外执行?

我可以通过提供代码片段来解释我的问题:

public static void main(final String[] a) {
    Stream.of(1, 2, 3, 4).map(i -> ForkJoinPool.commonPool().submit(new RecursiveAction() {
        @Override
        protected void compute() {
            System.out.println(Thread.currentThread());
        }
    })).forEach(ForkJoinTask::join);
}
Run Code Online (Sandbox Code Playgroud)

在我的笔记本电脑上运行时,它有4个核心,这打印:

Thread[main,5,main]
Thread[ForkJoinPool.commonPool-worker-1,5,main]
Thread[main,5,main]
Thread[ForkJoinPool.commonPool-worker-1,5,main]
Run Code Online (Sandbox Code Playgroud)

为什么某些任务在主线程中运行,主线程是公共fork连接线程池之外的线程?

创建自定义fork join线程池时,不会发生这种情况:

public static void main(final String[] a) {
    final ForkJoinPool p = new ForkJoinPool(4);

    Stream.of(1, 2, 3, 4).map(index -> p.submit(new RecursiveAction() {
        @Override
        protected void compute() {
            System.out.println(Thread.currentThread());
        }
    })).forEach(ForkJoinTask::join);
}

Thread[ForkJoinPool-1-worker-1,5,main]
Thread[ForkJoinPool-1-worker-1,5,main]
Thread[ForkJoinPool-1-worker-1,5,main]
Thread[ForkJoinPool-1-worker-1,5,main]
Run Code Online (Sandbox Code Playgroud)

那么,换句话说,公共池有什么特别之处?提供这些知识,在公共池中执行长时间运行的任务是明智的还是不明智的想法?

java java.util.concurrent fork-join forkjoinpool

1
推荐指数
1
解决办法
1439
查看次数

在 SystemVerilog 中 fork join_none 后仅等待一些线程完成

在 SystemVerilog 中,我需要等待在 fork join_none 结构内执行的一些线程完成。但是在另一个 fork join_none 结构中还有另一个永远不会结束的进程。

我的代码如下所示:

  fork
     process_that_will_never_end();
  join_none

  fork
     for(int i = 0; i < 40; i++) begin
        fork
           process_that_must_end(i);
        join_none
     end
  join
Run Code Online (Sandbox Code Playgroud)

包含 for 循环的 fork join 没有效果(这是我所期望的)。我考虑过在最后使用“等待叉”,但这也会等待 process_that_will_never_end(),所以它不起作用。

有没有办法只等待所有 process_that_must_end() 线程完成?

system-verilog fork-join

1
推荐指数
1
解决办法
2796
查看次数

forkJoin 不等待多个 Http 请求完成

所以我有三个 http 请求要传递给 forkJoin:

apiRequest1 = this.http.getApi1('...');
// The same format is for the remaining api requests.

forkJoin(apiRequest1, apiRequest2, apiRequest3)
    .subscribe(([results1, results2, results3]) => { rest of code }
Run Code Online (Sandbox Code Playgroud)

结果 3 中的数据不断作为空数组返回。如果我自己运行 HttpRequest 并订阅它,数据就会恢复正常。有什么办法可以解决这个问题吗?

fork-join rxjs angular

0
推荐指数
1
解决办法
1801
查看次数

线程"main"中的异常java.lang.OutOfMemoryError:eclipse上的Java堆空间

我正在尝试使用fork和join框架执行此程序.当我向这个程序提供较小尺寸的JPEG图像时,它工作正常,但是当我给出大小超过4 MB的图像时,它会抛出异常:

****Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at ForkBlur.blur(ForkBlur.java:120)
    at ForkBlur.main(ForkBlur.java:110)****
Run Code Online (Sandbox Code Playgroud)

我正在使用eclipse Helios IDE.

我希望它适用于大小超过50 MB的大图像

java eclipse exception fork-join

-1
推荐指数
1
解决办法
2万
查看次数