Android 中 IPC 机制----一看就懂
每日一言:低头需要勇气,抬头需要实力!
欢迎一起讨论和学习,QQ:732258496 微信:15520726587
一.进程与线程
进程和线程是操作系统的基本概念,但是很抽象,不好理解,希望下面的解释可以让大家明白更多。
1.计算机或者手机的核心是CPU,它承担计算机所有的任务,它像一座工厂,时刻在运行;
2.单个CPU一次只能运行一次任务;
3.任一时间,CPU总是运行一个进程,其它进程处于非运行状态;
4.进程比作车间,线程就入车间中的工人,一个进程可以包括多个线程;
5.进程的内存空间是共享的,每个线程都可以使用这些共享内存,比如,车间的空间是工人共享的,学多车间工人是可以互相走动的;
6.“互斥锁”防止多个线程同事读写某一块内存区域。比如,每个房间的大小不同,有些房间最多只能容纳一个人,厕所,里面有人的时候,其他人就进不去了。解决办法,先到的人上锁,后到的人看到有锁,就在外面等着,等锁打开之后进去;
7.“信号量”保证多个线程不会冲突。比如,有些房间可以同时容纳 n 个人,如果大于 n ,那多出来的人只能在外面等着,好比某些固内存区域,只能供给固定数量的线程使用。解决办法:门口挂 n 把钥匙,进去的时候拿一把钥匙?,出来时再把钥匙放下,如果门口没有钥匙,就等着。
8.操作系统的设计,可以归纳为以下 3 点
a.以多进程形式,运行多个任务同时执行;
b.以多线程形式,单个任务可以分成多个部分运行;
c.提供协调机制,一方面防止进程和线程之间的冲突,另一方面允许线程和进程之间的资源共享。
二.IPC是什么?
指两个进程间数据交换的过程
三.为什么要用到IPC?
多进程会造成以下问题
1.静态成员和单例模式会失效;
2. 线程同步机制完全失效;
3.SharePerferences的可靠性降低;
4.Application会多次创建。
四.Android中IPC方式有哪些?
Intent
共享文件
SharePreferences
Binder--Messenger--AIDL
ContentProvider---AIDL
Serialable(SerID。如果没有的话,反序列会出错)和Parcelable
Socket 流字节
五.如何选择合适IPC方式?
穷苦书生_万事愁: 这篇文章让我更深入地了解了HTML中的<div>和<span>标签,在细节描写上非常到位,让我对这个主题有了全新的认识。博主的深厚功底让我十分佩服,期待未来能够看到更多类似的好文。希望能够得到博主的指导,一起共同进步。感谢博主的分享和支持!
软件技术NINI: 这篇文章真是一篇佳作!作者运用了生动有趣的语言,将枯燥的理论知识娓娓道来,让人如沐春风
软件技术NINI: 这篇文章真是一篇佳作!作者运用了生动有趣的语言,将枯燥的理论知识娓娓道来,让人如沐春风
软件技术NINI: 这篇文章真是一篇佳作!作者运用了生动有趣的语言,将枯燥的理论知识娓娓道来,让人如沐春风
普通网友: 支持一下!我也写了一篇获取【大厂面试真题解析、核心开发学习笔记、最新全套讲解视频、实战项目源码讲义、学习路线简历模板】的文章