Atitit 粘贴路径参数法 跨进程通讯法 目录 1. .IPC(Inter-Process Communication,跨进程通信) 1 1.1. .IPC的使用场景: 2 2. 传统的进程间通

Atitit 粘贴路径参数法 跨进程通讯法

 

 

目录

1. .IPC(Inter-Process Communication,跨进程通信) 1

1.1. .IPC的使用场景: 2

2. 传统的进程间通信的方式有大致如下几种: 3

3. 进程间通信方式 3

4. Jvm 4

4.1. IPC可以使用Rmi,或者Corba也可以。 4

4.2. 内存映射文件来实现进程间通信(共享内存)。 4

4.3. 队列 4

5. 多进程模式出现以下问题: 4

6. Ati常用的 4

6.1. 剪贴板 vs 共享文件 4

7. 线程间的通信方式 4

7.1. 线程通信: 5

8. ref 5

 

 

  1. .IPC(Inter-Process Communication,跨进程通信)

任何一个操作系统都有对应的IPC机制。

  • Windows:通过剪切板、管道、油槽等进行进程间通讯。
  • Linux:通过命名空间、共享内容、信号量等进行进程间通讯。
  • Android:没有完全继承Linux,比如,其独具特色的通讯方式有Binder、Socket等等。

进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。另外,系统空间是“公共场所”,各进程均可以访问,所以内核也可以提供这样的条件。此外,还有双方都可以访问的外设。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其它数据库中的某些表项和记录交换信息。广义上这也是进程间通信的手段,但是一般都不把这算作“进程间通信”。

    1. .IPC的使用场景:
  • 由于某些原因,应用自身需要采用多进程模式来实现。可能原因有:

          某些模块因特殊原因要运行在单独进程中;
          为加大一个应用可使用的内存,需通过多进程来获取多份内存空间。

  • 当前应用需要向其它应用获取数据。

 

:为何需要进行IPC?多进程通信可能会出现什么问题?

为什么要用到多进程?

在Android系统中一个应用默认只有一个进程,每个进程都有自己独立的资源和内存空间,其它进程不能任意访问当前进程的内存和资源,系统给每个进程分配的内存会有限制。如果一个进程占用内存超过了这个内存限制,就会报OOM的问题,很多涉及到大图片的频繁操作或者需要读取一大段数据在内存中使用时,很容易报OOM的问题,为了彻底地解决应用内存的问题,Android引入了多进程的概念,它允许在同一个应用内,为了分担主进程的压力,将占用内存的某些页面单独开一个进程,比如Flash、视频播放页面,频繁绘制的页面等

---------------------

 

 

  1. 传统的进程间通信的方式有大致如下几种:



(1) 管道(PIPE)
(2) 命名管道(FIFO)
(3) 信号量(Semphore)
(4) 消息队列(MessageQueue)
(5) 共享内存(SharedMemory)
(6) Socket

 

 

  1. 进程间通信方式

1.管道(匿名管道 Pipe)//   PipedInputStream  、PipedOutputStream

 

2.命名管道(NamedPipe/FIFO)//java 不支持?

 

3.信号(Signal) // wait() notify() notifyall() 、管程

 

4.消息队列(MessageQueue)

 

5.共享内存 (SharedMemory)  //java 不支持?

 

6.内存映射(MappedMemory)

 

7.信号量(Semaphore)//理解其原子性操作,也是信号量之所以安全的原因

 

8.套接字(Socket)  //应该都熟悉

---------------------

  1.  Jvm
    1. IPC可以使用Rmi,或者Corba也可以。

另外Java nio的MappedByteBuffer也可以通过

    1. 内存映射文件来实现进程间通信(共享内存)。
    2. 队列
  1. 多进程模式出现以下问题:


1、静态成员和单例模式完全失效
2、线程同步机制完全失效
3、SharedPreferences的可靠性下降
4、Application多次创建

  1. Ati常用的
    1. 剪贴板 vs 共享文件

namesxls= (String) ( (Transferable) Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null)).getTransferData(DataFlavor.stringFlavor);

 

  1. 线程间的通信方式

①同步

这里讲的同步是指多个线程通过synchronized关键字这种方式来实现线程间的通信

②while轮询的方式

③wait/notify机制

④管道通信就是使用java.io.PipedInputStream 和 java.io.PipedOutputStream进行通信

具体就不介绍了。分布式系统中说的两种通信机制:共享内存机制和消息通信机制。感觉前面的①中的synchronized关键字和②中的while轮询 “属于” 共享内存机制,由于是轮询的条件使用了volatile关键字修饰时,这就表示它们通过判断这个“共享的条件变量“是否改变了,来实现进程间的交流。

而管道通信,更像消息传递机制,也就是说:通过管道,将一个线程中的消息发送给另一个。

 

 

    1.  线程通信:

 

1共享变量,如volatite等

 

2wait/notify机制,最好搭配同步锁

 

3Lock/Condition机制  //condition.await();condition.signalAll();

 

4管道 //PipedOutputStream out; PipedInputStream in;  out.connect(in); //只能建立一次

---------------------

  1. ref

 (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

posted @ 2019-06-20 13:48  attilaxAti  阅读(39)  评论(0编辑  收藏  举报