Java 如何才能使方法等待执行器运行?

Java 如何才能使方法等待执行器运行?,java,multithreading,executorservice,executor,Java,Multithreading,Executorservice,Executor,我有一个执行器在singleThreadExecutor中运行,我需要在它完成后调用另一个方法(saveJsonFile()),但只有当我的执行器完成时 我和遗嘱执行人的课 ExecutorService e = Executors.newSingleThreadExecutor(); //Download HTML and Unzip Threads typeDownloaded = "html"

我有一个执行器在singleThreadExecutor中运行,我需要在它完成后调用另一个方法(saveJsonFile()),但只有当我的执行器完成时

我和遗嘱执行人的课

        ExecutorService e = Executors.newSingleThreadExecutor();

                    //Download HTML and Unzip Threads
                    typeDownloaded = "html";
                    DownloadUtil.downloadHtml(e, this, dns, port, offlineUuid, filePathHtmlDownload, cookies, typeDownloaded);
                    UnzipUtil.unZipHtml(e, this, filePathHtmlDownload, outputFolder, typeDownloaded);
                    e.shutdown();
                    saveJsonFile();
我的UnzipUtil课程:

public class UnzipUtil {

    public static void unZipHtml(Executor e, MainViewController controller, String zipFile, String outputFolder, String type) {
        e.execute(new UnzipTask(controller, zipFile, outputFolder, type));
    }

    public static void unZipImages(Executor e, MainViewController controller, int numImg, String outputFolder, String type) throws SystemException, PortalException {
        String filePath;

        filePath = System.getProperty("user.home") + File.separator + "Documents" + File.separator + "TargetApp" + File.separator + "TempImageDownload.zip";
        System.out.println(filePath);
        e.execute(new UnzipTask(controller, filePath, outputFolder, type));

    }
}

使用submit而不是e.exectute。 这将返回一个未来结果。在执行任务之前,result.get将被阻止

Future<?> result = e.submit(...);
result.get() 
未来结果=e.submit(…);
result.get()

使用submit而不是e.exectute。 这将返回一个未来结果。在执行任务之前,result.get将被阻止

Future<?> result = e.submit(...);
result.get() 
未来结果=e.submit(…);
result.get()

也许我没有遇到问题,但您不能使用吗?基本上,您可以指定在解压任务完成时调用的“回调”。。。从链接中引用(您也可以在这里找到一个关于如何使用机器的简单示例):

未来表示异步计算的结果。提供了检查计算是否完成、等待其完成以及检索计算结果的方法


也许我没有遇到问题,但你不能使用吗?基本上,您可以指定在解压任务完成时调用的“回调”。。。从链接中引用(您也可以在这里找到一个关于如何使用机器的简单示例):

未来表示异步计算的结果。提供了检查计算是否完成、等待其完成以及检索计算结果的方法


我看不到实际的
Runnable
创建。我看不到实际的
Runnable
创建。