几种常见的IPC(进程间通信)学习笔记

我们知道进程是资源分配的最小单位,而线程是资源调度的最小单位。我们涉及比较多的通常是多线程开发,因为现在的程序要处理复杂的任务,往往需要多线程,确保主线程不会因为处理任务造成卡死的现象。
线程之间资源是共享的,我们需要避免多线程资源争夺以及确保资源读写的正确性。那么如果是多进程,进程之间的通信方式又是什么呢?(这里重点介绍平时工作会有需要的)
原文连接:https://blog.csdn.net/weixin_44259356/article/details/108309568

一,常见的通信方式

很多同学可能没注意,但是仔细一想,其实我们在开发中已经用到了很多,如下:

1文件

进程可以通过对同一文件的读写,来进行通讯,但是由于文件在磁盘上,这种方式处理效率低,速度慢,开销大。可以用于配置,等少量信息交互。

2数据库

比起文件,拥有更高的效率,更好的安全性。

3消息队列

如:Kafka,redis等,一般用于处理实时高吞吐量,流式数据,也叫数据流(废话,哈哈)。

4套接字

非常通用的一种一种方式,比如前后端通讯,数据请求接口,我们常用的http请求,就是用套接字实现的。缺点很明显,慢,安全性低,受到网络环境等等的影响。

二,其他的通讯方式

往往用于linux。
管道 共享内存 信号 信号量
这些就不一一介绍了,感兴趣可以自己学习。

三,重点介绍

binder

广泛用于android,与其他通讯方式最大的区别是,其他的通讯方式往往要通过一个进程拷贝数据,然后数据传输,再次拷贝,另一个进程读取拷贝的数据,这样类似的方式通讯,往往需要拷贝两次内存(共享内存一次都不需要拷贝,但是不幸的是linux无法严格保证提供对共享内存的独占访问,所以这是一种不安全的方式)。而binder只需要拷贝一次,很神奇是不。有空会单独介绍一下binder。

几种常见的IPC(进程间通信)学习笔记相关推荐

  1. Oracle变量定义的三种方式(define,variable,declare)学习笔记

    1.define(即host变量) Host变量主要作用是起到一个替代变量的作用,是主机环境可以和oracle进行交互的一个媒介. 通过define定义host变量的时候必须指定变量名和变量的值,如果 ...

  2. linux应用层之进程间通信学习笔记

    1. 什么是进程间通信 进程间通信就是在不同进程之间传播或交换信息 单机通信方式:半双工管道(无名管道,命名管道),全双工管道(命名全国双工管道),消息队列,信号量,共享内存 多级通信方式:套接字(基 ...

  3. 常见渗透测试靶场学习笔记

    1.DVWA 作为新手,通常第一个听说的靶场应该就是DVWA,部署简单安装完对应版本的PAM(PHP-Apache-MySQL),简单配置后就可以使用. 1.DVWA靶场可测试漏洞:暴力破解(Brut ...

  4. NO.73——《人工智能·一种现代方法》Agent学习笔记

    Agent 首先,何为Agent?通过传感器感知环境,并通过执行器对所处环境产生影响. Agent的感知序列:是该Agent存储的所有输入历史的完整数据. Agent函数 Agent函数是抽象的数学描 ...

  5. 23种设计模式之工厂模式学习笔记

    什么是工厂模式? 工厂顾名思义就是创建产品,根据产品是具体产品还是具体工厂可分为简单工厂模式和工厂方法模式,根据工厂的抽象程度可分为工厂方法模式和抽象工厂模式.该模式用于封装和管理对象的创建,是一种创 ...

  6. 【海码学院】web前端基础入门CSS之常见CSS兼容问题学习笔记

    一.兼容性处理要点 1.DOCTYPE 影响 CSS 处理: 2.FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important ...

  7. 基于AI的5G技术-研究方向与范例-学习笔记

    文章来源:尤肖虎,张川,谈晓思,金石,邬贺铨.基于AI的5G技术--研究方向与范例[J].中国科学:信息科学,2018,48(12):1589-1602. 目录 0.摘要 1.引言 1.1 5G常识 ...

  8. VC学习笔记 -单选按钮控件(Ridio Button)的使用

    在VC++编程过程中,查资料是一个苦差事,案边放了一摞书左翻右翻好是烦人.一赌气就把一些常用的小技巧自己总结了一下,虽费了些功夫,但对以后编程很有好处.现拿出来与大家共享,以后积累多了,作一个CHM电 ...

  9. Sharepoint学习笔记—架构系列

     为便于查阅,这里整理并列出了我的Sharepoint学习笔记中涉及架构方面的有关文章,有些内容可能会在以后更新. Sharepoin学习笔记-架构系列--  Sharepoint的网页(Page), ...

最新文章

  1. 几个ARX取CAD窗口句柄的函数
  2. 希腊字母常用指代意义及其中文读音
  3. linux下安装 ping 命令
  4. [原创]简单即是美:QQ2009英文版
  5. [码海拾贝 之JS] JS 之数组排序
  6. L1-077 大笨钟的心情 (15 分)-PAT 团体程序设计天梯赛 GPLT
  7. PLC扩展模块西门子smart200PLC扩展RS485modbus以太网模块
  8. 小米手机连接电脑只能看到部分相片_小米手机连接电脑后怎么看照片?
  9. linux 屏幕录像软件,Linux_Linux下好用的5个屏幕录像软件,在很多时候,我们需要将在 Lin - phpStudy...
  10. DBVisualizer导入excel数据
  11. java观察者模式_Java设计模式,观察者模式
  12. 黄金矿工小游戏制作步骤
  13. 跟未名学Office - PPT操作:高效
  14. 安装RedHat Linux 7.4
  15. fiddler https 抓包
  16. 英语影视台词---绿皮书(2)(利普 我以为你要把那家伙打死了)
  17. .NetCore——Autofac使用
  18. speedoffice(Excel)怎么给文字加粗
  19. 反微软缴文-看到它,我决定学习、使用Linux
  20. 基于SSM+MySQL+BootStrap+JSP的大学生校园二手市场交易系统(附论文)

热门文章

  1. cad图形如何导入到奥维地图_如何使用关联点将CAD导入到奥维
  2. 解决电脑开机显示无信号且黑屏的6种解决方法
  3. 2022 年 Elastic Community Conference 议题征集开始啦
  4. 自旋传递扭矩STT-MRAM通用存储器
  5. Linux系统之部署Yearning SQL审核平台
  6. WSL2安装Xfce4可视化GUI界面
  7. 二值图像分析笔记(1)—— 图像二值化
  8. 【初学者 OpenMV】03 图像二值化
  9. unity实现物体移动的方法
  10. 文件访问被拒绝,无法枚举容器中的对象,访问被拒绝,没有权限访问文件夹