Java ForkJoinPool 不能被调用两次?

我正在使用 fork/join 编写 Java 多线程程序。当我调用fork/join pool两次时,只会执行一次,为什么?


public class Test extends RecursiveAction{


    public static void main(String[] args) {

        Test test=new Test();

        test.myCompute();

        // calling the 2nd time, no output

        test.myCompute();

    }


    public void myCompute() {

        ForkJoinPool fjPool = new ForkJoinPool();

        fjPool.invoke(this);

    }


    @Override

    public void compute() {

        System.out.println("mark");

    }


}

输出:标记


桃花长相依
浏览 230回答 1
1回答

繁花如伊

这是因为您要多次提交同一个任务实例以供执行。每个实例只能执行一次(除非您reinitialize()在再次提交之前使用该方法......但是,您通常只会创建一个新的任务实例)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java