在Android中,我们可以通过手动开启多个线程来异步处理耗时任务。其实在应用启动之后,除了主线程外,应用本身还会启动其他几个通用线程,这些线程通常称为管家线程。
通过Eclipse的DDMS,我们可以看到下面几个线程,根据不同的Android版本,实际情况可能略有差异。
下面分别说一下这几个线程。
- main:就是我们说所知道的主线程ActivityThread,我们应用的事件分发、UI更新都是在这里面做的。
- GC:Garbage Collector,虚拟机的垃圾收集线程,在2.3之前都是串行GC,没有这个线程,2.3之后才改成了并行GC。
- Signal Catcher:捕获并处理Linux的信号。
- JDWP:Java Debug Wire Protocal,这个线程是进行调试用的服务线程。
- Compiler:我们知道现在的虚拟机对部分代码进行编译运行的,这个线程就是JIT即使编译器线程。
- ReferenceQueueDaemon:引用队列守护线程。我们知道,在创建引用对象的时候,可以关联一个队列。当被引用对象引用的对象被GC回收的时候,被引用对象就会被加入到