unix进程间通信方式(IPC)

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

最新文章

  1. 从零开始编写属于我的CMS:(六)插件
  2. easyUI类取嵌套的类型(pastJson结合)
  3. python的编码判断_unicode_gbk/gb2312_utf8(附函数)
  4. 5个示例带你学习AngularJS
  5. 修改ptrace_scope
  6. LoadRunner执行自动化以及报告自动化的方法
  7. C++ Bitsets
  8. C#使用SOAP调用Web Service
  9. webstrom的注释
  10. CentOS 配置防火墙操作实例(启、停、开、闭端口)CentOS Linux-FTP/对外开放端口(接口)TomCat相关
  11. Informatica 9.5.1 安装配置
  12. java 多线程安全问题-同步代码块
  13. 芝麻HTTP:Python爬虫入门之URLError异常处理
  14. js判断访问浏览器是安卓还是ios还是微信浏览器还是微博
  15. 在Ubuntu中部署并测试HyperLedger Fabric 0.6
  16. 解决win10环境下python Selenuim调用Chrome时提示data 及Chrome正在受自动软件控制的方法
  17. 排查Linux机器是否已被入侵
  18. sqlserver创建数据库
  19. idea问题总结记录
  20. 【python3】基于 qq邮箱的邮件发送

热门文章

  1. 【题解】NOIP2018 填数游戏
  2. S3C6410中断系统
  3. Node.js安装及环境配置 for winer
  4. HCIA——应用层常用协议
  5. 第六章 SSH远程服务介绍
  6. vue知识点11
  7. Mybatis原理之数据源和连接池
  8. vue渐进式开发的理解和指令
  9. vant学习网址
  10. 一文秒懂!Python字符串格式化之format方法详解