Android中的一组线程

时间:2011-08-17 13:21:53

标签: android multithreading thread-safety

我正在寻找构建一个在Java(Android)中使用mutipul线程的应用程序(n.b.这是我的头脑,很可能充满了错误)

thread [] jobs
int threadCounter

    // Some code

job = new Runnabul(){
    // Do something intresting
}

    // Some more code

while(true){
 jobs[threadCounter] = new job();
 threadCounter++;
}    

这会导致手机耗尽内存并死机,所以对于我的问询,我怎么知道我什么时候接近耗尽(所以我可以减慢新线程的创建速度) ?

由于

2 个答案:

答案 0 :(得分:1)

你应该考虑使用Android的AsyncTask而不是你自己的线程。他们使用java.util.concurrent中的Java执行程序,因此操作系统完全独立地管理线程创建和系统资源。

AsyncTasks还有用于在UI线程上发布进度和更新GUI的有用方法。

答案 1 :(得分:1)

最好使用执行程序服务,如herehere所述。创建一个线程池,然后只传递一个Runnable(一个要执行的任务)。

正如derekerdmann所说,如果你真的想做一个线程数组,请使用ASyncTask。如果内存不足,系统会小心停止它们,你可以比线程更容易管理它们。