我很想知道是否有类似于Java和/或Android SDK中C#的任务并行库。来自C#背景,我们被教导说,创建一个新线程是一个相对重量级的操作,并被指示使用线程池,或者最近使用任务。
所以在我看来,任务带来的抽象级别是理想的......有没有这样的东西,甚至是线程池?或者只是涉及制作新的Thread或制作my own threadpool
答案 0 :(得分:3)
确实如此。您可以在此处详细了解:Executors
此外,您可以在同一页面上概述整个并发主题:Concurrency
答案 1 :(得分:1)
答案 2 :(得分:1)
我认为java.util.concurrent包具有您正在寻找的大多数类/功能。
具体来说,看看这些:
答案 3 :(得分:1)
根据Java开发人员的说法,Java并发编程应该转向使用新的并发API。
检查:http://download.oracle.com/javase/1.5.0/docs/guide/concurrency/index.html
答案 4 :(得分:1)
Android支持Javas并发库,但您应该查看支持在UI线程和后台运行操作的AsyncTask。
以下是任务的简短示例:
private class CharCountTask extends AsyncTask<String, Integer, Long> {
protected Long doInBackground(String... in) {
long result = 0;
for(int i=0,n=in.length; i<n; i++) {
result += in[i].length();
publishProgress((int) (i / (double) count) * 100);
}
return result;
}
protected void onProgressUpdate(Integer... progress) {
// update progress here
updateProgressBar(progress[0]);
}
protected void onPostExecute(Long result) {
// update the UI here
setTotalChars(result);
}
}
使用它:
new CharCountTask().execute("first", "second", "third");
答案 5 :(得分:0)
查看https://github.com/dtag-dbu/task4java/处的Task4Java框架。
此框架基于标准Java库构建,并在Android上运行。目前,我们正在创建一个示例应用程序来展示该框架的强大功能。