[英]Use ExecutorService or Similar to Queue Tasks to be Completed in Order?
假设我有三个任务:从Internet下载.zip,解压缩文件,然后将本地文件与解压缩的文件交换出去。 我不能阻塞主线程,因为它正在被服务器使用,但是我需要按顺序完成这三个任务。 有没有一种方法可以使用ExecutorService或类似的方法将这些任务排队,以使一个任务在另一个任务之后完成而不会阻塞主线程?
您可以使用单线程执行程序。 下面的服务将与主线程并行运行,并且e2
处理的三个任务将顺序运行。
ExecutorService e1 = Executors.newSingleThreadExecutor();
ExecutorService e2 = Executors.newSingleThreadExecutor();
e1.execute( new ExpressTask() );
e2.execute( new SequentialTask("Part-One"));
e2.execute( new SequentialTask("Part-Two"));
e2.execute( new SequentialTask("Part-Three"));
e1.shutdown();
e2.shutdown();
只需运行一个线程:
new Thread() {
public void run() {
task1.run();
task2.run();
task3.run();
}
}.start();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.