就像我们在android中有AsyncTask一样,我们在Java中有什么选项可以在后台运行任务(不同的Thread),并且可以轻松地与主线程进行通信。
我找到了像
这样的东西1.Worker Threads和
2.swing workers
请告诉我这些是否是正确的班级来完成这项工作,以及我可以用来做上述工作的其他内容
答案 0 :(得分:2)
对于一般的多线程/任务,Java具有极好的并发支持。查看java.util.concurrent。并与主线程进行通信,可能是java.util.obsever和java.util.observable。
答案 1 :(得分:1)
如果你想要一般的并行任务(与任何UI工具包无关),并且你没有使用提供一些高级并发机制的框架(比如eclipse Job API),你应该看看java.util.concurrent
包裹 - 尤其是Executor
和ExecutorService
。
示例:
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。