在某些情况下,从新线程获取响应

时间:2018-08-01 21:24:27

标签: java multithreading runnable

我有一个Java后端应用程序,可以处理图像和PDF。 当我处理PDF时,应用程序需要几秒钟,因此没有问题。 当我需要处理图像时,为了获得最佳结果,我需要运行其他耗时的过程(例如1或2分钟),其想法是用户可以同时处理多个文档,因此可能要花很长时间!

因此,为了避免用户一直等待应用程序完成该过程,我实现了Thread(Runnable),以便为每个文档生成一个新的Thread。 但由于过程相同(在图像处理之后),因此两种文件类型之间共享该方法。

因此,我想生成新的线程,但是对于PDF文件,我希望用户不会注意到任何更改,我的意思是说,该应用程序处理文件并将响应返回到前端。但是对于图像,我想创建一个新线程并继续在后台工作,同时用户看到一条消息,指出正在处理文件,并且在处理结束时会通知他。

因此,当我检查此答案时:How can I pass a parameter to a Java Thread?

但随后了解:

Runnable r = new MyRunnable(param_value);
Thread t = new Thread(r).start();

我想拥有

if(type = "PDF"){
t.join();
response = getSomeResponse();
}
else{
//ShowMessage
}

因此,有没有一种使用线程的方法,在某些情况下,等待它完成并获得结果,在某些情况下,只要在主线程完成后让它们工作即可,我可以通知用户他将最后通知?

0 个答案:

没有答案
相关问题