在项目中,经常会遇到单机上进程间的通信,常用的进程间通信方式一般有以下几种
1 socket
2 unixsocket
3 共享内存(share-memory)
4 管道(pipe)
5 消息队列(message-queue)
6 文件(file)
7 消息总线(比如zeromq)
8 其他中间件(比如redis, memchache, 数据库等)
如果项目仅仅是消息的传递,对...
分类:
系统相关 时间:
2014-09-24 20:33:27
阅读次数:
3658
转自http://blog.sina.com.cn/s/blog_587c016a0100nfeq.htmllinux下进程间通信IPC的几种主要手段简介:管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有...
分类:
系统相关 时间:
2014-09-24 16:01:27
阅读次数:
1547
进程间通信的几种方式:
1、普通管道(pipe):管道是一种单工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系或者兄弟进程之间。
2、流管道(s_pipe):一种半双工的通信方式,可以双向传输。
3、有名管道(named pipe):有名管道也是半双工的通信方式,但是它允许无亲缘关系的进程间的通信。
4、信号量(semophore):信...
分类:
其他好文 时间:
2014-09-22 17:09:42
阅读次数:
211
一 概念
内核分配的一块存储去,多个进程可以将物理内存映射到进程的虚拟地址空间,从而实现对内存的直接操作,是效率最高的IPC。
消息队列和管道都有在用户地址空间和内核空间相互复制产生的开销。
二 操作函数
1 创建共享内存
#include
#include
int shmget( key_t key, //代...
分类:
其他好文 时间:
2014-09-22 15:56:52
阅读次数:
312
??
1进程间通信
每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不
到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用
户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程
间通信(IPC,InterProcess
Communication)。
2pipe管...
分类:
其他好文 时间:
2014-09-21 03:11:39
阅读次数:
390
一概述
消息队列就是一段有一定格式的内存区,即一个消息的链表,位于内核中,可以把消息看成一条记录,这个记录有特定的格式和优先级。
消息队列的读和写是异步的,发送方不必等到接收方接收,接收方发现没有数据也不用等待。
新的消息总是放在队尾,接收的时候不一定要遵守先进先出的原则,可以根据优先级获取数据。
消息队列只有在内核重启或者显示的删除的时候才会被删除掉。...
分类:
其他好文 时间:
2014-09-20 16:02:09
阅读次数:
272
进程间通信 共享内存(剪切板) 匿名管道只能实现父子进程间的通信(以文件系统为基础): 匿名管道是什么,有什么用,怎么用 1、创建父进程,也就是在解决方案中建立一个parent的工程 2、在parent中通过createpipe创建匿名管道,并获得匿名管道的读、写句柄 3、在父进程中通过Create...
分类:
其他好文 时间:
2014-09-19 20:57:56
阅读次数:
289
原网址:http://blog.csdn.net/vipzjyno1/article/details/25463457在学习Android的过程中,Intent是我们最常用Android用于进程内或进程间通信的机制,其底层的通信是以Binder机制实现的,在物理层则是通过共享内存的方式实现的。 I....
分类:
其他好文 时间:
2014-09-19 17:21:35
阅读次数:
315
一 概述
信号的作用是通知进程某一特定事件的发生,是一种软件中断。采用异步处理机制,即当信号发送到某个进程中的时候,操作系统会中断进程的正常处理流程,转而去进入信号处理函数进行操作,等信号处理函数完成之后,返回中断处继续执行。
信号的发送:硬件产生(按键 或者 硬件错误) 、软件产生(程序调用kill、alarm等函数)
信号的处理:用户自定义函数处理、系统默认方式处理、忽略...
分类:
其他好文 时间:
2014-09-18 18:56:34
阅读次数:
266
刚刚接触SOCKET编程,网上看了一些资料,发现做些简单的应用还是不难。但是要深入了解SOCKET编程还需要系统的看一些书。一般在进程间通信TCP是一种不错的方式。 ---XXXTCP链接是面向流的链接,因此数据在应用程序看来应该是没有边界的,之前对send和recv函数中发送的大小和返回值没有.....
分类:
其他好文 时间:
2014-09-17 18:27:12
阅读次数:
278