TPL等效于Java / Android

问题描述 投票:6回答:6

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

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

java multithreading task-parallel-library
6个回答
3
投票

当然可以。你可以在这里阅读更多相关信息:Executors

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



1
投票

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

具体来说,看看这些:

  1. ThreadPoolExecutor
  2. Executors
  3. CompletionService

1
投票

根据Java开发人员的说法,Java并发编程应该转向使用新的并发API。

检查:http://download.oracle.com/javase/1.5.0/docs/guide/concurrency/index.html


1
投票

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);
  }
}

0
投票

查看new CharCountTask().execute("first", "second", "third"); 上的Task4Java框架。

该框架基于标准Java库构建,并在Android上运行。目前,我们正在创建一个示例应用程序来展示此框架的强大功能。

© www.soinside.com 2019 - 2024. All rights reserved.