在java中执行后台任务

时间:2013-12-04 07:09:23

标签: java multithreading background-process

就像我们在android中有AsyncTask一样,我们在Java中有什么选项可以在后台运行任务(不同的Thread),并且可以轻松地与主线程进行通信。

我找到了像

这样的东西

1.Worker Threads和

2.swing workers

请告诉我这些是否是正确的班级来完成这项工作,以及我可以用来做上述工作的其他内容

3 个答案:

答案 0 :(得分:2)

对于一般的多线程/任务,Java具有极好的并发支持。查看java.util.concurrent。并与主线程进行通信,可能是java.util.obsever和java.util.observable。

答案 1 :(得分:1)

如果你想要一般的并行任务(与任何UI工具包无关),并且你没有使用提供一些高级并发机制的框架(比如eclipse Job API),你应该看看java.util.concurrent包裹 - 尤其是ExecutorExecutorService

示例:

ExecutorService executor = Executors.newFixedThreadPool(numberOfThreads);

// somewhere else:
executor.execute(myRunnableTask); // myRunnableTask is a Runnable

// or, if you want to have more control
Future<Double> futureResult = executor.submit(myCallableCalculation);
// ...
Double result = futureResult.get(); // waits until calculation completes

另见:

答案 2 :(得分:0)

对于一般的多线程/任务,Java具有极好的并发支持。查看java.util.concurrent。并与主线程进行通信,可能是java.util.obsever和java.util.observable。