一、结论
1、Android中进程的优先级与垃圾回收机制相关,优先级越低被垃圾回收的机会越大。当内存不足的时候,总是低优先级的进程被最先回收;
2、Android中线程的优先级与调用顺序有关,优先级越高被调用的可能性越高(注意,是可能性更高),也就是说即使线程A的优先级大于线程B,同等情况下线程A不一定先于线程B被调用。
二、进程与线程
1、什么是进程、线程
如果你想要一个程序运行得快,那么可以将其断开为多个片段,在单独的处理器上运行每个片段,这是并发编程最主要的考虑,简单理解:
- 进程(process):是一块包含了某些资源的内存区域,是操作系统的最小可执行单元。操作系统利用进程把它的工作划分为一些功能单元。一个程序至少对应一个进程。
- 线程(thread):是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。一个进程至少对应一个线程。
在Android中,每个app运行时前首先创建一个进程,该进程是由Zygote fork出来的,用于承载App上运行的各种Activity/Service等组件。大多数情况一个App就运行在一个进程中,除非:
(1)配置Android:process属性:
a.进程名为com.goodong.com.process1:
<activity
android:name=".MyFirstActivity"
android:process="com.goodong.com.process1"
>
<intent-filter>
……
</intent-filter>
</activity>
b.配置进程名为”:process2”(包名+process2):
<activity
android:name=".MyFirstActivity"
android:process=":process2"
>
<intent-filter>……
</intent-filter>
</activity>
</