linux下进程间通信的方式


Posted in 面试题 onDecember 23, 2014
信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支持Unix早期信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上,该函数是基于BSD的,BSD为了实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数);
管道通信(Pipe)及有名管道(named pipe)通信:管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;
共享内存:使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。
信号量(semaphore):主要作为进程间以及同一进程不同线程之间的同步手段。
套接字(Socket):更为一般的进程间通信机制,可用于不同机器之间的进程间通信。起初是由Unix系统的BSD分支开发出来的,但现在一般可以移植到其它类Unix系统上:Linux和System V的变种都支持套接字。
报文(Message)队列(消 息队列):消息队列是消息的链接表,包括Posix消息队列system V消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。

Tags in this post...

面试题 相关文章推荐
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
Sep 09 面试题
JDO的含义
Nov 17 面试题
写一个方法1000的阶乘
Nov 21 面试题
盛大二次面试题
Nov 18 面试题
说出你对remoting 和webservice的理解和应用
Jun 08 面试题
params有什么用
Mar 01 面试题
Linux上比较文件的命令都有哪些
Feb 24 面试题
Linux机考试题
Oct 16 面试题
介绍一下EJB的体系结构
Aug 01 面试题
如何写出高质量、高性能的MySQL查询
Nov 17 面试题
Overload和Override的区别
Sep 02 面试题
Ruby如何进行文件操作
Jul 17 面试题
linux系统都有哪些运行级别
Apr 15 #面试题
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
Jan 19 #面试题
Linux内核产生并发的原因
Jul 13 #面试题
Linux如何为某个操作添加别名
Mar 01 #面试题
Linux如何压缩可执行文件
Oct 21 #面试题
进程的查看和调度分别使用什么命令
Dec 14 #面试题
Linux内核的同步机制是什么?主要有哪几种内核锁
Jan 03 #面试题
You might like
PHP 如何向 MySQL 发送数据
2006/10/09 PHP
PHP排序算法类实例
2015/06/17 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
将PHP的session数据存储到数据库中的代码实例
2016/06/24 PHP
Laravel框架实现定时发布任务的方法
2018/08/16 PHP
不用ajax实现点击文字即可编辑的方法
2007/12/16 Javascript
js单词形式的运算符
2014/05/06 Javascript
js实现每日自动换一张图片的方法
2015/05/04 Javascript
使用vue.js开发时一些注意事项
2016/04/27 Javascript
关于webuploader插件使用过程遇到的小问题
2016/11/07 Javascript
prototype与__proto__区别详细介绍
2017/01/09 Javascript
jQuery插件HighCharts绘制2D圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
实例讲解JS中pop使用方法
2019/01/27 Javascript
微信小程序如何使用云开发
2019/05/17 Javascript
JavaScript怎样在删除前添加确认弹出框?
2019/05/27 Javascript
浅谈Vue中render中的h箭头函数
2019/11/07 Javascript
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
python进程管理工具supervisor的安装与使用教程
2017/09/05 Python
基于numpy.random.randn()与rand()的区别详解
2018/04/17 Python
python实现抠图给证件照换背景源码
2019/08/20 Python
python实现布隆过滤器及原理解析
2019/12/08 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
Python进行统计建模
2020/08/10 Python
详解通过HTML5 Canvas实现图片的平移及旋转变化的方法
2016/03/22 HTML / CSS
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
高中微机老师自我鉴定
2014/02/16 职场文书
中国梦我的梦演讲稿
2014/04/23 职场文书
大学生新学期计划书
2014/04/28 职场文书
党的群众路线教育实践活动对照检查材料(个人)
2014/09/24 职场文书
群众路线查摆问题整改措施思想汇报
2014/10/10 职场文书
党员群众路线学习心得体会
2014/11/04 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
磁贴还没死, 微软Win11可修改注册表找回Win10开始菜单
2021/11/21 数码科技
深入浅出的讲解:信号调制到底是如何实现的
2022/02/18 无线电
Java9新特性对HTTP2协议支持与非阻塞HTTP API
2022/03/16 Java/Android
win10频率超出范围怎么办?win10老显示超出工作频率范围的解决方法
2022/07/07 数码科技