TPL等效于Java / Android

时间:2011-06-30 14:43:25

标签: java multithreading task-parallel-library

我很想知道是否有类似于Java和/或Android SDK中C#的任务并行库。来自C#背景,我们被教导说,创建一个新线程是一个相对重量级的操作,并被指示使用线程池,或者最近使用任务。

所以在我看来,任务带来的抽象级别是理想的......有没有这样的东西,甚至是线程池?或者只是涉及制作新的Thread或制作my own threadpool

6 个答案:

答案 0 :(得分:3)

确实如此。您可以在此处详细了解:Executors

此外,您可以在同一页面上概述整个并发主题:Concurrency

答案 1 :(得分:1)

答案 2 :(得分:1)

我认为java.util.concurrent包具有您正在寻找的大多数类/功能。

具体来说,看看这些:

  1. ThreadPoolExecutor
  2. Executors
  3. CompletionService

答案 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上运行。目前,我们正在创建一个示例应用程序来展示该框架的强大功能。