我们可以创建两个在Android上运行的ThreadPoolExecutor吗?

时间:2011-08-30 05:29:48

标签: android android-asynctask

AsyncTask正在管理一个包含5个核心线程的线程池。一旦我们开始使用AsyncTask,它将开始在Android手机上设置这个线程池。

我不想使用AsyncTask的原因是因为我要创建一个服务,并从服务启动线程,这意味着任务的UI更新不多。 但是,必须在UI线程上创建并执行asynctask。

所以我将创建另一个不同的线程池,用于管理这种线程。我担心的是,如果我创建另一个包含5个核心线程的线程池,那么在android上运行的线程是否太多(10个核心线程)?会减慢它并导致糟糕的表现吗?

感谢。

1 个答案:

答案 0 :(得分:0)

正如Alex所说,你需要使用方法executeOnExecutor()来启动你自己的执行者。 http://developer.android.com/reference/android/os/AsyncTask.html#executeOnExecutor%28java.util.concurrent.Executor,%20Params...%29

似乎有很多陷阱,所以请仔细阅读AsyncTask的整个页面。

是的,您可以创建自己的ThreadPoolExecutor并将其与AsyncTask一起使用。

还要检查一下,

Using ThreadPoolExecutor and AsyncTask