我很想知道是否有类似于Java和/或Android SDK中C#的任务并行库。来自C#背景,我们被教导说,创建一个新线程是一个相对重量级的操作,并被指示使用线程池,或者最近使用任务。
所以在我看来,任务带来的抽象级别是理想的......有没有这样的东西,甚至是线程池?或者这一切只是涉及制作一个新的Thread或制作my own threadpool
当然可以。你可以在这里阅读更多相关信息:Executors
此外,您可以在同一页面上概述整个并发主题:Concurrency
根据Java开发人员的说法,Java并发编程应该转向使用新的并发API。
检查:http://download.oracle.com/javase/1.5.0/docs/guide/concurrency/index.html
Android支持Java并发库,但你应该研究qazxsw poi,它支持在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");
上的Task4Java框架。
该框架基于标准Java库构建,并在Android上运行。目前,我们正在创建一个示例应用程序来展示此框架的强大功能。