我喜欢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();
}
}
}