linux下进程间通信的方式


Posted in 面试题 onJanuary 23, 2013
信号(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...

面试题 相关文章推荐
SQL中where和having的区别
Jun 17 面试题
接口中的方法可以是abstract的吗
Jul 23 面试题
c/c++某大公司的两道笔试题
Feb 02 面试题
空指针到底是什么
Aug 07 面试题
解释DataSet(ds) 和 ds as DataSet 的含义
Jul 27 面试题
命名空间(namespace)和程序集(Assembly)有什么区别
Sep 25 面试题
结构和类有什么异同
Jul 16 面试题
params有什么用
Mar 01 面试题
软件测试常见笔试题
Feb 04 面试题
测试驱动开发的主要步骤是什么
Dec 10 面试题
你所在的项目是如何确定版本号的
Dec 28 面试题
Lucene推荐的分页方式是什么?
Dec 07 面试题
linux系统都有哪些运行级别
Mar 26 #面试题
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
May 03 #面试题
Linux内核产生并发的原因
Nov 08 #面试题
Linux如何为某个操作添加别名
Feb 05 #面试题
Linux如何压缩可执行文件
Mar 27 #面试题
进程的查看和调度分别使用什么命令
Mar 25 #面试题
Linux内核的同步机制是什么?主要有哪几种内核锁
Jul 11 #面试题
You might like
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
PHP+Ajax无刷新带进度条图片上传示例
2017/02/08 PHP
PHP创建XML接口示例
2019/07/04 PHP
jQuery 获取对象 定位子对象
2010/05/31 Javascript
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
js querySelector和getElementById通过id获取元素的区别
2012/04/20 Javascript
jQuery使用deferreds串行多个ajax请求
2016/08/22 Javascript
Vue.js实现拖放效果的实例
2016/09/30 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
2017/02/08 Javascript
EasyUI为Numberbox添加blur事件的方法
2017/03/05 Javascript
基于JavaScript表单脚本(详解)
2017/10/18 Javascript
深入理解Vue官方文档梳理之全局API
2017/11/22 Javascript
小程序实现带年月选取效果的日历
2018/06/27 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
详解vue-property-decorator使用手册
2019/07/29 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
jquery插件懒加载的示例
2020/10/24 jQuery
python写日志封装类实例
2015/06/28 Python
python轻松查到删除自己的微信好友
2016/01/10 Python
Python网络爬虫实例讲解
2016/04/28 Python
Python网络爬虫项目:内容提取器的定义
2016/10/25 Python
python中map的基本用法示例
2018/09/10 Python
对python实现模板生成脚本的方法详解
2019/01/30 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
2020/03/10 Python
Pytorch数据拼接与拆分操作实现图解
2020/04/30 Python
上海期货面试题
2014/01/31 面试题
Java基础知识面试题
2014/03/25 面试题
工厂会计员职责
2014/02/06 职场文书
2014三八妇女节活动总结范文四篇
2014/03/09 职场文书
市场营销专业求职信
2014/06/17 职场文书
2015年学校后勤工作总结
2015/04/08 职场文书
教师学习十八届五中全会精神心得体会
2016/01/05 职场文书
浅谈node.js中间件有哪些类型
2021/04/29 Javascript
SpringBoot项目中控制台日志的保存配置操作
2021/06/18 Java/Android
Nginx安装配置详解
2022/06/25 Servers
win10此电脑打不开怎么办 win10双击此电脑无响应的解决办法
2022/07/23 数码科技