基本概念
进程是系统进行资源分配和调度的独立单位。一个程序之前有一个进程,一个进程之中至少有一个线程。
线程是进程里面的实体,是cpu进程资源分配和调度的基本单位。在android中系统会给每个程序都创建主线程,也称为UI线程。
个人理解进程类似一个车间,而线程则类似流水线。每个车间里面都至少存在一条生产流水线。
进程线程区别
1个程序至少拥有一个进程,1个进程由多个线程组成,至少拥有1个线程
进程拥有独立的内存,而多个线程共享内存
线程必须依存与应用程序中
线程意义在于一个应用程序可以由多个线程同时运行,对进程进行资源调度分配
主线程与子线程间的通信
1) handel
2) AsyncTask
3) runOnUiThread
4) View 和 handler的post方法
子线程与子线程间的通信
由于主线程在应用启动的时候系统就给它生成了Looper , MessageQueue等消息循环的东西,所以每次子线程
可以直接往主线程发送message。而子线程是不会自动生成Looper的,就要调用Looper.prepare();方法来为该子线程生成Looper,
生成后调用Loopre.loop()来启动消息队列,再在子线程中定义自己的Handler,其他子线程可以调用该Handler来进行,子线程间的通信了。
进程间的通信
1) 广播
ps:出于安全考虑,发送广播的时候要设置权限,注册了该权限的接收器才能接收到广播
2) Intent
通过intent设定相应的action即可打开对应activity
3) Content pridiver
用观察者模式,通过Cursor共享数据,通讯录
4) AIDL
远程接口
5)messenger
Activity间的通信
广播
接口回调
观察者模式
第三方 rxbus、eventbus