如何在不同的线程上同步部分方法

时间:2015-05-28 10:44:06

标签: java multithreading

让我们假设我们有一个方法:

public class DoStuff implements Runnable {
    public void run()
    {
        A();
        B();
        C();
    }
}

是否有一种简单的方法来创建将运行所有A()的n个线程,然后是所有B(),然后是所有C()?

我知道我可以做类似的事情:

    ExecutorService app = Executors.newFixedThreadPool(threadCount);

    //create A class and run A();

    app.shutdown();

    app.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);

对于A()然后B()然后C(),但我想要类似以下内容:

public class DoStuff implements Runnable {
    public void run()
    {
        A();
        //wait all A to finish;
        B();
        //wait all B to finish;
        C();
    }
}

始终使用相同的线程。

2 个答案:

答案 0 :(得分:4)

答案 1 :(得分:-1)

你需要将A,B和C作为线程,你需要加入它们。 使用C加入A和B和B.

通过这种方式,你让B线程等到A的工作完成,然后C线程等到B的工作完成。