前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >进程间通信

进程间通信

作者头像
看、未来
发布2020-08-26 10:45:03
5550
发布2020-08-26 10:45:03
举报

怎么做(文中所有蓝色字体都可以点击进去)

前面提到进程间通信的几种方式这里进行一个铺开

1.半双工管道

由于管道仅仅是将一个进程的读端和另一个进程的写端连通的单通信方法,所以又叫“半双工管道”。在shell中管道用“|”表示。

管道的历史很悠久了。

管道部分这篇讲的清楚了,栗子也在里面,我就留着篇幅写别的啦。

2.消息队列
是什么

1、消息队列是内核地址空间中的内部链表,通过Linux内核在不同的进程间传递消息。

2、消息顺序的发送到消息队列中,并以几种不同的方式从队列中获取。

3、内核中的消息队列是通过IPC标识符来进行区别的,不同消息队列之间是互相独立的。

4、每个消息队列中的消息又构成一个独立的链表。

我把它看作一个“丰巢”。

<为什么和怎么用>部分,点这里

3.共享内存(这是IPC最快捷的方式)
是什么

我的第一个服务器项目分了前后端,而其中前后端的数据通讯就是使用shm共享内存的方式,所以对于这块会比较有感觉。

1、共享内存是在多个进程之间共享内存区域的一种进程间的通信方式。

2、它是在多个进程间通过对指定内存段进行映射实现内存共享的。

3、这是IPC最快捷的方式,因为它没有中间商赚差价。

4、多个进程间共享的是同一块物理空间,仅仅是挂载地址不同而已,因此不需要进行复制,可以直接使用这段空间。

怎么用呢?源码呢?在这里

4.文件空间映射mmap()函数
是什么

1、mmap()函数用来将文件或者设备映射到内存中。

2、mmap的特点是按需调页。最开始只申请vma,并不调真正的页。当对某些页进行引用的时候,会引起一个缺页中断,再将页面调入到内存当中,这样避免了对内存的浪费。

为什么要用mmap()函数

mmap的优势: 操作文件就像操作内存一样,适合于对较大文件的读写。

mmap的缺点:

1、文件如果很小,比如60bytes,由于在内存当中的组织都是按页组织的,将文件调入到内存当中是一个页4k,这样其他的4096-60=4036 bytes的内存空间就会浪费掉了。

2、···未完待续···

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 怎么做(文中所有蓝色字体都可以点击进去)
    • 4.文件空间映射mmap()函数
    相关产品与服务
    消息队列 CMQ 版
    消息队列 CMQ 版(TDMQ for CMQ,简称 TDMQ CMQ 版)是一款分布式高可用的消息队列服务,它能够提供可靠的,基于消息的异步通信机制,能够将分布式部署的不同应用(或同一应用的不同组件)中的信息传递,存储在可靠有效的 CMQ 队列中,防止消息丢失。TDMQ CMQ 版支持多进程同时读写,收发互不干扰,无需各应用或组件始终处于运行状态。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档