我喜欢ExecutorService系列的类/接口(interface)。我不必担心线程。我接受一个ExecutorService实例并用它来计划任务,如果我想使用8线程或16线程池,那么,好极了,我完全不必担心,它的发生取决于如何设置ExecutorService。欢呼!

但是,如果我的某些任务需要按顺序执行,该怎么办?理想情况下,我会要求ExecutorService让我在单个线程上安排这些任务,但似乎没有任何方法可以这样做。

编辑:这些任务是事先未知的,它们是无限制的一系列任务,这些任务是由各种事件(例如随机/未知到达过程:例如,盖革计数器的点击或击键事件)错误地生成的。

最佳答案

您可以编写Runnable的实现,该实现接受一些任务并依次执行它们。

就像是:

public class SerialRunner implements Runnable {
    private List<Runnable> tasks;

    public SerialRunner(List<Runnable> tasks) {
        this.tasks = tasks;
    }

    public void run() {
        for (Runnable task: tasks) {
            task.run();
        }
    }
}

10-08 02:24