(1)管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信。
(2)命名管道(named pipe):命名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。命名管道在文件系统中有对应的文件名。命名管道通过命令mkfifo或系统调用mkfifo来创建。
(3)信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支持Unix早期信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上,该函数是基于BSD的,BSD为了实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数)。
(4)消息(Message)队列:消息队列是消息的链接表,包括Posix消息队列system V消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺
(5)共享内存:使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。
(6)内存映射(mapped memory):内存映射允许任何多个进程间通信,每一个使用该机制的进程通过把一个共享的文件映射到自己的进程地址空间来实现它。
(7)信号量(semaphore):主要作为进程间以及同一进程不同线程之间的同步手段。
(8)套接口(Socket):更为一般的进程间通信机制,可用于不同机器之间的进程间通信。起初是由Unix系统的BSD分支开发出来的,但现在一般可以移植到其它类Unix系统上:Linux和System V的变种都支持套接字。
分享到:
相关推荐
java进程间通信机制.ppt
基于java的进程间异步通信系统的设计与实现.pdf
本人写了一个java进程通信的工具jar,方便大家简单的使用java进程通信。 开启守护进程,获取消息: package com.test; import org.msun.process.ProcessMonitor; import org.msun.process.ProcessMonitor....
其步骤如下:1)首先要创建一个管道文件,这一点Java 做不到,我们要借助C/C++中的mkfifo()函数来实现。} 这是查看当前目录,可以看到两个Pipe
用java编写的基于socket的进程间通信程序 客户端服务器聊天小程序
Java NIO 应用 -- 使用内存映射文件实现进程间通信
进程间通信之消息队列 ( message queue ) 消息队列是消息的链表,具有特定的格式,并由消息队列标识符标识. 七种进程间通信方式: 一.无名管道( pipe ) 二.有名管道( fifo ) 三.共享内存 ( shared memory ) 四....
java进程间通讯机制代码----RMI、共享内存、Socket、管道,等方式,每种方法我都讲了原理和例子程序,很有参考意义。在网上很难找到的。
简单的进程管道通信,非常好用,容易上手和修改,是eclipse工程文件
Over the years there have been a number of well-known efforts building on that concept, from the venerable stalwarts of CORBA and DCOM, to modern day sequels such as Java RMI, .NET Remoting, WCF, WS-...
进程间通信:Windows NamedPipes和Java应用程序
基于java的进程间异步通信系统的设计与实现 基于java的进程间异步通信系统的设计与实现 基于java的进程间异步通信系统的设计与实现
此小demo主要帮助大家了解IPC进程间通信的实现原理,希望对大家有所帮助
Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析[归纳].pdf
进程间通信涉及到客户端和服务端, 肯定有绑定服务的过程, 所以要阅读一下Android Service相关的知识, 跨进程通信的媒介aidl文件,我们也必须要了解怎么创建的,有什么规则,所以请先阅读一下Android AIDL使用这篇...
(2)命名管道(named pipe):命名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信 (3)信号(Signa
在Windows下基于共享内存实现进程间通信,主要通过c++编写。目前已添加jni、cshrarp支持。
二.Service Manager 成为Binder 守护进程之路 三.Server 和Client 获得Service Manager 接口之路 四.Server 启动过程源代码分析 五.Client 获得Server 远程接口过程源代码分析 六.应用程序框架层的Java 接口源...
使用linux消息队列实现进程间双向通信。本接口将消息接收封装在一个独立线程中,方便使用。
下面小编就为大家带来一篇详谈java线程与线程、进程与进程间通信。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧