我是靠谱客的博主 单薄电脑,最近开发中收集的这篇文章主要介绍进程间‘共享内存需要加锁吗_linux进程通信方式对比管道:FIFO:消息队列:信号量:共享内存:套接字,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
管道:
速度慢,容量有限(64kB,ulimit -a可以查询的pipe size 指的是一次性写入的大小限制),只有父子进程能通讯 半双工的(即数据只能在一个方向上流动)----(匿名管道)
int pipe(int fd[2]); // 返回值:若成功返回0,失败返回-1
当一个管道建立时,它会创建两个文件描述符:fd[0]为读而打开,fd[1]为写而打开
要关闭管道只需将这两个文件描述符关闭即可。
单个进程中的管道几乎没有任何用处。所以,通常调用 pipe 的进程接着调用 fork,这样就创建了父进程与子进程之间的 IPC 通道
若要数据流从父进程流向子进程,则关闭父进程的读端(fd[0])与子进程的写端(fd[1]);反之,则可以使数据流从子进程流向父进程
FIFO:
任何进程间都能通讯,但速度慢 (命名管道),慢主要是由于内核在读写都加了互斥锁
int mkfifo(const char *pathname, mode_t mode);
FIFO的通信方式类似于在进程中使用文件来传输数据,只不过FIFO类型文件同时具有管道的特性。在数据读出时,FIFO管道中同时清除数据,并且“先进先出”<
最后
以上就是单薄电脑为你收集整理的进程间‘共享内存需要加锁吗_linux进程通信方式对比管道:FIFO:消息队列:信号量:共享内存:套接字的全部内容,希望文章能够帮你解决进程间‘共享内存需要加锁吗_linux进程通信方式对比管道:FIFO:消息队列:信号量:共享内存:套接字所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复