进程线程区别和通信

基本概念

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容