在linux进程间通信的方式中,共享内存是一种最快的IPC方式。因此,共享内存用于实现进程间大量的数据传输,共享内存的话,会在内存中单独开辟一段内存空间,这段内存空间有自己特有的数据结构,包括访问权限、大小和最近访问的时间等。

    为什么说共享内存是最快的一种IPC方式呢?让我们一起来看一下下面的这张图:

    从这张图中,我们可以看出,使用管道(FIFO/消息队列)从一个文件传输信息到另外一个文件需要复制4次。一是,服务器端将信息从相应的文件复制到server临时缓冲区中;二是,从临时缓冲区中复制到管道(FIFO/消息队列);三是,客户端将信息从管道(FIFO/消息队列)复制到client端的缓冲区中;四是,从client临时缓冲区将信息复制到输出文件中。
    这个是对于不是共享内存的其他方式的消息传送过程,下面我们仔细来看一下对于共享内存而言,这种消息传送机制是怎样的呢?我们还是先看一下下面这张图:
    从这张图中,我们可以看出,共享内存的消息复制只有两次。一是,从输入文件到共享内存;二是,从共享内存到输出文件。这样就很大程度上提高了数据存取的效率。

最新文章

  1. js中对radio和checkbox是否选中的判断
  2. hiho_1066_并查集
  3. ABBYY FineReader 12扫描界面介绍
  4. 自绘按钮,添加Color属性(转载)
  5. 用Eclipse插件Bytecode Outline来查看Java字节码
  6. hdfs[命令] fsck
  7. each函数循环数据表示列举,列举循环的时候添加dom的方法
  8. GO不支持数组通过函数参数更改,有点不一样
  9. [BZOJ]4200: [Noi2015]小园丁与老司机
  10. CentOS7 YUM 安装NGINX
  11. python学习笔记 18-4-11
  12. Linux 中用 dd 命令来测试硬盘读写速度
  13. Django进阶之查询优化、extra注入SQL及批量创建
  14. 自己写一个 Hash 表
  15. 设计模式之责任链模式(Chain of Responsibility )
  16. 引用:WebAPI中的定时处理-使用Quartz.Net
  17. 线程池demo
  18. [uwsgi: command not found]
  19. python-docx 使用教程
  20. 真正理解 git fetch, git pull 以及 FETCH_HEAD

热门文章

  1. Java动物声音模拟器
  2. Objective-c——UI基础开发第六天(UITableView)
  3. 【NOIP2013】华容道
  4. URL 正则表达式
  5. 论文笔记之:Instance-aware Semantic Segmentation via Multi-task Network Cascades
  6. 端口映射工具--socat
  7. GDB动态库搜索路径
  8. 关于a标签的target属性
  9. hadoop-2.7.0
  10. 【solr】 solr 5.4.1 和tomcat 基础环境搭建