Atitit 粘贴路径参数法 跨进程通讯法 目录 1. .IPC(Inter-Process Communication,跨进程通信) 1 1.1. .IPC的使用场景: 2 2. 传统的进程间通
Atitit 粘贴路径参数法 跨进程通讯法
目录
1. .IPC(Inter-Process Communication,跨进程通信) 1
任何一个操作系统都有对应的IPC机制。
- Windows:通过剪切板、管道、油槽等进行进程间通讯。
- Linux:通过命名空间、共享内容、信号量等进行进程间通讯。
- Android:没有完全继承Linux,比如,其独具特色的通讯方式有Binder、Socket等等。
进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。另外,系统空间是“公共场所”,各进程均可以访问,所以内核也可以提供这样的条件。此外,还有双方都可以访问的外设。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其它数据库中的某些表项和记录交换信息。广义上这也是进程间通信的手段,但是一般都不把这算作“进程间通信”。
某些模块因特殊原因要运行在单独进程中;
为加大一个应用可使用的内存,需通过多进程来获取多份内存空间。
- 当前应用需要向其它应用获取数据。
:为何需要进行IPC?多进程通信可能会出现什么问题?
为什么要用到多进程?
在Android系统中一个应用默认只有一个进程,每个进程都有自己独立的资源和内存空间,其它进程不能任意访问当前进程的内存和资源,系统给每个进程分配的内存会有限制。如果一个进程占用内存超过了这个内存限制,就会报OOM的问题,很多涉及到大图片的频繁操作或者需要读取一大段数据在内存中使用时,很容易报OOM的问题,为了彻底地解决应用内存的问题,Android引入了多进程的概念,它允许在同一个应用内,为了分担主进程的压力,将占用内存的某些页面单独开一个进程,比如Flash、视频播放页面,频繁绘制的页面等
---------------------
(1) 管道(PIPE)
(2) 命名管道(FIFO)
(3) 信号量(Semphore)
(4) 消息队列(MessageQueue)
(5) 共享内存(SharedMemory)
(6) Socket
1.管道(匿名管道 Pipe)// PipedInputStream 、PipedOutputStream
2.命名管道(NamedPipe/FIFO)//java 不支持?
3.信号(Signal) // wait() notify() notifyall() 、管程
4.消息队列(MessageQueue)
5.共享内存 (SharedMemory) //java 不支持?
6.内存映射(MappedMemory)
7.信号量(Semaphore)//理解其原子性操作,也是信号量之所以安全的原因
8.套接字(Socket) //应该都熟悉
---------------------
另外Java nio的MappedByteBuffer也可以通过
-
- 内存映射文件来实现进程间通信(共享内存)。
- 队列
- 多进程模式出现以下问题:
1、静态成员和单例模式完全失效
2、线程同步机制完全失效
3、SharedPreferences的可靠性下降
4、Application多次创建
namesxls= (String) ( (Transferable) Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null)).getTransferData(DataFlavor.stringFlavor);
①同步
这里讲的同步是指多个线程通过synchronized关键字这种方式来实现线程间的通信
②while轮询的方式
③wait/notify机制
④管道通信就是使用java.io.PipedInputStream 和 java.io.PipedOutputStream进行通信
具体就不介绍了。分布式系统中说的两种通信机制:共享内存机制和消息通信机制。感觉前面的①中的synchronized关键字和②中的while轮询 “属于” 共享内存机制,由于是轮询的条件使用了volatile关键字修饰时,这就表示它们通过判断这个“共享的条件变量“是否改变了,来实现进程间的交流。
而管道通信,更像消息传递机制,也就是说:通过管道,将一个线程中的消息发送给另一个。
1共享变量,如volatite等
2wait/notify机制,最好搭配同步锁
3Lock/Condition机制 //condition.await();condition.signalAll();
4管道 //PipedOutputStream out; PipedInputStream in; out.connect(in); //只能建立一次
---------------------
(9+条消息)android 四种跨进程通信 - emmmsuperdan的博客 - CSDN博客.html
(9+条消息)多线程、多进程通信 (java实现) - LittleMonkey的博客 - CSDN博客.html
(9+条消息)Java多线程以及进程间的通信方式 - lovewebeye的专栏 - CSDN博客.html
(9+条消息)面试题:IPC(跨进程通信) - songzi1228的博客 - CSDN博客.html
作者简介
艾提拉 艾龙 attilax,法名 st attilax akbar rinpoche 圣阿提拉科斯阿克巴仁波切
头街软件技术大师 uke组织创始人
学术成就,完善的20大知识体系,拥有uke学院硕士博士学位
从事软件互联网行业技术背景十二年,csdn排名TOP57
长年从事软件互联网技术与管理,预计出版多本心得分享书籍
擅长技术与管理与文化 致力于标准化事业
Qq 1466519819 小号112237553
微信attilax 小号attilax201708
作者:: 绰号与头街 :老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher 神的使者(Messenger of God)及守望者(Watch Man
捕鸟王"Bird Catcher kok 虔诚者Pious 宗教信仰捍卫者 Defender Of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak KOA万兽之王 纵火者
头街来源:神的使者(Messenger of God)及守望者(Watch Man来源于圣经
老哇的爪子claw of Eagle来源于印加帝国
KOA万兽之王 来源于婆罗门大神森林中修炼
简称:: st Emir Attilax Akbar 圣 埃米尔 阿提拉克斯 阿克巴
全名::st Emir Attilax Akbar bin Mahmud bin attila bin Solomon bin adam Al Rapanui 圣 埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门 本亚当 阿尔 拉帕努伊
常用名:艾提拉(艾龙), EMAIL:1466519819@qq.com
喜欢的绰号 捕鸟王纵火者 老瓦的爪子兔子的耳朵
喜欢的头街 st圣 仁波切 大师 马斯塔 艺术家 博士 诗人 国王
头衔:
uke Emir Uke部落首席大酋长,ati协会创始人 仁波切马斯塔 埃米尔
uke总部o2o负责人,全球网格化项目创始人,
圣阿提拉克斯国王
科技领域 UTSC uke技术标准化委员会委员长 uke 首席cto 软件部门总监 技术部副总监 研发部门总监主管 产品部副经理 项目部副经理 uke科技研究院院长 uke软件培训大师
Ati组织科研研究院创始人
文艺领域 , ,, uke机车协会主任 uke纹身协会
uke交友协会会长 uke捕猎协会会长
Ati文艺协会会长 ati文学协会
行政领域 Gchsp总裁 gchsp常委 GsP创始人
媒体传播领域 uke出版社编辑总编 宣传布道总策划
Ati传媒总部
渔猎军事领域 uke保安部首席大队长
Uke 户外运动协会理事长 度假村首席大村长
Ati打猎协会
法学 法学研究会 制度研究会
管理领域 工商管理学 公共管理与社会服务
,uke制度检查委员会副会长
教育领域 uec学院校长, uecip图像处理机器视觉专业系主任 uke文档检索专业系主任
Uke图像处理与机器视觉学院首席院长
uke终身教育学校副校长
靓号研究院
经济领域 uke波利尼西亚区大区连锁负责人 汤加王国区域负责人 uke克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke布维岛和南乔治亚和南桑威奇群岛大区连锁负责人
Uke软件标准化协会理事长理事长 Uke 数据库与存储标准化协会副会长
直达巴士西北区负责人 直达巴士长沙与西安分部部长
润昌通讯软件事业部总裁 执行长 分部负责人 执行委员会主席
Ati经济研究所
历史领域 历史事业部 ati历史研究院
社会科学领域 社科学院 ati文化部
自然科学领域 Uke研究院院长兼首席研究员 科学家
Ati自然科学研究院
宗教神学领域 uke宗教与文化融合事务部部长 大师master
uke制度与重大会议委员会委员长 ati宗教事务所
医学领域 Uke医院 与医学院方面的创始人
转载请注明来源:attilax的专栏 http://blog.csdn.net/attilax
http://www.cnblogs.com/attilax/
Microblog
http://weibo.com/u/5941179815 (common attilax)
https://weibo.com/p/1005055941179815 (attilax201707,bek weibo)
http://weibo.com/u/5487832265 (tech,for blog auto gene)
知乎空间
https://www.zhihu.com/people/ati-att/activities
Qq 1466519819 小号112237553
微信attilax 小号attilax201708
微博 attilax2016 小号attilax201707
--Atiend v23