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...

面试题 相关文章推荐
普通PHP程序员笔试题
Jan 01 面试题
C语言编程题
Mar 09 面试题
如何提高SQL Server的安全性
Jul 25 面试题
北京RT科技有限公司.net工程师面试题
Feb 15 面试题
OSPF有什么优点?为什么OSPF比RIP收敛快?
Feb 13 面试题
使用C#编写创建一个线程的代码
Jan 22 面试题
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
Jan 13 面试题
网上常见的一份Linux面试题(多项选择部分)
Sep 09 面试题
企业面试题试卷附带答案
Dec 20 面试题
JAVA招聘远程笔试题
Jul 23 面试题
什么是方法的重载
Jun 24 面试题
如何理解transaction事务的概念
May 27 面试题
linux系统都有哪些运行级别
Apr 15 #面试题
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
Jan 19 #面试题
Linux内核产生并发的原因
Jul 13 #面试题
Linux如何为某个操作添加别名
Mar 01 #面试题
Linux如何压缩可执行文件
Oct 21 #面试题
进程的查看和调度分别使用什么命令
Dec 14 #面试题
Linux内核的同步机制是什么?主要有哪几种内核锁
Jan 03 #面试题
You might like
php简单构造json多维数组的方法示例
2017/06/08 PHP
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
js 方法实现返回多个数据的代码
2009/04/30 Javascript
模仿JQuery sortable效果 代码有错但值得看看
2009/11/05 Javascript
JS 文件传参及处理技巧分析
2010/05/13 Javascript
在JavaScript中使用timer示例
2014/05/08 Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
2015/03/03 Javascript
jquery实现平滑的二级下拉菜单效果
2015/08/26 Javascript
javascript事件模型介绍
2016/05/31 Javascript
自制微信公众号一键排版工具
2016/09/22 Javascript
jquery组件WebUploader文件上传用法详解
2020/10/23 Javascript
根据输入邮箱号跳转到相应登录地址的解决方法
2016/12/13 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
layui文件上传实现代码
2017/05/20 Javascript
JavaScript中最常用的10种代码简写技巧总结
2017/06/28 Javascript
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
2017/09/29 NodeJs
浅析node Async异步处理模块用例分析及常用方法介绍
2017/11/17 Javascript
快速解决vue-cli在ie9+中无效的问题
2018/09/04 Javascript
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
通过实例讲解JS如何防抖动
2019/06/15 Javascript
Vue this.$router.push(参数)实现页面跳转操作
2020/09/09 Javascript
[01:03:13]VG vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
2018/04/17 Python
python实现KNN分类算法
2019/10/16 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
Python爬虫:Request Payload和Form Data的简单区别说明
2020/04/30 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
2020/06/04 Python
python 利用jieba.analyse进行 关键词提取
2020/12/17 Python
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
酒店中秋节活动方案
2014/01/31 职场文书
社会公德演讲稿
2014/05/20 职场文书
国际商务英语专业求职信
2014/07/08 职场文书
感恩教师主题班会
2015/08/12 职场文书
游戏《我的世界》澄清Xbox版暂无计划加入光追
2022/04/03 其他游戏
SQL中的连接查询详解
2022/06/21 SQL Server
mysql全面解析json/数组
2022/07/07 MySQL