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

面试题 相关文章推荐
介绍一下Cookie和Session及他们之间的区别
Nov 20 面试题
如何减少垃圾回收让内存更加有效使用
Oct 18 面试题
在C语言中"指针和数组等价"到底是什么意思?
Mar 24 面试题
字符串str除首尾字符外的其他字符按升序排列
Mar 08 面试题
Android面试宝典
Aug 06 面试题
WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回?
Feb 21 面试题
上海中网科技笔试题
Feb 19 面试题
linux下进程间通信的方式
Dec 23 面试题
Python里面如何拷贝一个对象
Feb 17 面试题
几个判断型的面试题
Jul 03 面试题
介绍一下Java中标识符的命名规则
Feb 03 面试题
95%的面试官都会问到的50道Java线程题,附答案
Aug 03 面试题
linux系统都有哪些运行级别
Mar 26 #面试题
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
May 03 #面试题
Linux内核产生并发的原因
Nov 08 #面试题
Linux如何为某个操作添加别名
Feb 05 #面试题
Linux如何压缩可执行文件
Mar 27 #面试题
进程的查看和调度分别使用什么命令
Mar 25 #面试题
Linux内核的同步机制是什么?主要有哪几种内核锁
Jul 11 #面试题
You might like
PHP教程 变量定义
2009/10/23 PHP
PHP 函数call_user_func和call_user_func_array用法详解
2014/03/02 PHP
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
PHP中多维数组的foreach遍历示例
2014/06/13 PHP
PHP Include文件实例讲解
2019/02/15 PHP
PHP模型Model类封装数据库操作示例
2019/03/14 PHP
返回对象在当前级别中是第几个元素的实现代码
2011/01/20 Javascript
自动最大化窗口的Javascript代码
2013/05/22 Javascript
javascript:FF/Chrome与IE动态加载元素的区别说明
2014/01/26 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
2014/08/16 Javascript
用js代码和插件实现wordpress雪花飘落效果的四种方法
2014/12/15 Javascript
jquery实现的省市区三级联动
2015/04/02 Javascript
JavaScript中用toString()方法返回时间为字符串
2015/06/12 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
2015/12/03 Javascript
详解JavaScript实现设计模式中的适配器模式的方法
2016/05/18 Javascript
js 获取经纬度的实现方法
2016/06/20 Javascript
深入理解JavaScript中的尾调用(Tail Call)
2017/02/07 Javascript
jQuery Autocomplete简介_动力节点Java学院整理
2017/07/17 jQuery
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
VUE动态生成word的实现
2020/07/26 Javascript
Python挑选文件夹里宽大于300图片的方法
2015/03/05 Python
调试Python程序代码的几种方法总结
2015/04/28 Python
使用Python将字符串转换为格式化的日期时间字符串
2019/09/01 Python
Python性能分析工具Profile使用实例
2019/11/19 Python
python在CMD界面读取excel所有数据的示例
2020/09/28 Python
python中threading和queue库实现多线程编程
2021/02/06 Python
CSS3 Flexbox中flex-shrink属性的用法示例介绍
2013/12/30 HTML / CSS
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
幼儿园家长会邀请函
2014/01/15 职场文书
学生安全承诺书
2014/05/22 职场文书
上海世博会口号
2014/06/19 职场文书
办公室主任岗位职责
2015/01/31 职场文书
应届生简历自我评价
2015/03/11 职场文书
Navicat for MySQL的使用教程详解
2021/05/27 MySQL