进程线程区别和通信

2018-08-19  本文已影响0人  粥小新

基本概念

进程是系统进行资源分配和调度的独立单位。一个程序之前有一个进程,一个进程之中至少有一个线程。

线程是进程里面的实体,是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

上一篇 下一篇

猜你喜欢

热点阅读