Java-ThreadPool等待任务完成

时间:2018-07-06 23:08:49

标签: java multithreading task threadpool wait

我用Java制作了ThreadPool。我以下列方式使用它。

public Image calculateObject() {
    Image img;

    Task task = new Task() {
        @Override
        protected Object call() throws Exception {
            //Calculate the Image.
        }
    }
    threadPool.addTask(task);
    //Wait for task completion.
    return img;
}

很显然,我想等到ThreadPool处理完任务并创建Object后再从函数返回。我该怎么做,我应该在我的wait中实现某种ThreadPool函数吗(我将如何去做?)?我是否完全误解了ThreadPool的观点,并且很愚蠢?

为澄清起见,我的ThreadPool的主要目的是为所有到达的ProgressBarTask,还要确保完成重要的Task首先。

编辑:因此,正如HoverCraftFullOfEels指出的那样,我的问题实际上是很愚蠢的。我将尝试进一步阐明问题。因此,我想制作一个函数,该函数将启动一个Thread并计算一个Image并在完成后返回此值。图像的创建可能需要长达10分钟的时间,我希望能够一次创建多个图像,但参数稍有不同。我也不希望这种情况发生时GUI锁定。该函数完成后,我想返回完成的Image,以便将其保存。

将这个函数改成Task并在每次我想做一个Image时运行任务是个好主意吗?然后我怎么从Image那里得到这个ThreadPool

0 个答案:

没有答案