linux使用的7种进程间通信方式
2018-02-09 15:48
281 查看
linux 使用的7种进程间通信方式
1、匿名管道(pipe)
管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道。只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);
单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在与内存中。
数据的读出和写入:一个进程向管道中写的内容被管道另一端的进程读出。写入的内容每次都添加在管道缓冲区的末尾,并且每次都是从缓冲区的头部读出数据。
管道的实质:
管道的实质是一个内核缓冲区,进程以先进先出的方式从缓冲区存取数据,管道一端的进程顺序的将数据写入缓冲区,另一端的进程则顺序的读出数据。该缓冲区可以看做是一个循环队列,读和写的位置都是自动增长的,不能随意改变,一个数据只能被读一次,读出来以后在缓冲区就不复存在了。
当缓冲区读空或者写满时,有一定的规则控制相应的读进程或者写进程进入等待队列,当空的缓冲区有新数据写入或者满的缓冲区有数据读出来时,就唤醒等待队列中的进程继续读写。
2、有名管道(FIFO)
3、信号
4、消息队列
5、共享内存
6、信号量
7、Socket
相关文章推荐
- Linux进程间通信的两种方式:使用共享内存和信号量
- linux进程间通信,使用共享内存方式
- Linux进程间通信方式之socket使用实例
- linux进程间通信,使用共享内存方式
- 使用SSH密钥方式登录Linux
- 大企业在后端使用Linux的十大常见方式
- 大企业在后端使用Linux的十大常见方式
- linux进程间通信方式之匿名管道
- linux系统的进程间通信方式
- linux进程间通信方式 -- 共享内存
- Linux下通过共享内存进行进程间通信,进程间同步使用信号量来实现
- Linux 引导解析(使用bootsect.s+setup.s方式)
- linux进程间通信方式
- linux下C语言编程4-使用共享内存实现进程间通信2
- linux大于2T的磁盘使用GPT分区方式
- Linux入门的最基本的命令: basic command 以及终端使用的快捷方式
- Linux下C程序使用多线程方式处理实例
- linux下使用静态链接方式使用lua
- linux下使用sort命令升序、降序、随机及组合方式排序方法
- LINUX进程间通信方式