当前位置: 首页 > news >正文

进程间的通信方式有几种?

了解进程间的通信方式之前,需要了解两个概念,即IPC和RPC。

IPC(Inter-process-commutation):同一台计算机的进程通信
RPC(Remote-process-commutation):不同计算机之间的进程通信,需要遵守网络协议,比如微服务、HTTP协议常用的RPC接口调用

进程间通信方式主要为以下六种:

1、管道(pipe)
分为匿名管道和命名管道两种,匿名管道可用于具有父子进程间的通信,命名管道除了具有管道所具有的功能外,还允许无亲缘关系的进程之间的通信。

2、信号(signal)
信号是在软件层次上对中断机制的一种模拟,它是比较复杂的通信方式,用于通知进程有某件事发生,一个进程收到一个信号与处理器收到一个中断请求在效果上是一致的。

3、消息队列(Message Queue)
消息队列是一种常用的进程间通信方式,克服了上述两种方式种信号量有限的缺点,具有写权限的进程可以按照一定的规则给MQ中添加Message。生产者发消息,接守者消费消息。

4、共享内存(shareMemory)
特点是多个进程可以访问同一块内存空间,不同进程可以看到对方进程中对共享内存中数据的更新。这种方式依赖于某种同步操作,如加互斥锁和信号量等,这个功能需要考虑一些并发的问题,一般用锁机制等一些事务控制的方式。

5、信号量(semaphore)
主要作为进程之间及同一种进程的不同线程之间的同步和互斥手段。

6、套接字(Socket)
比较普通普通的方式,可用于网络中不同机器之间的进程间通信,应用比较广泛。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Handler 消息处理机制总结
  • 【ARM Coresight Trace 系列文章 2.3 -- 简单介绍 ITM 比 Uart 的优点】
  • 【Linux系列】known_hosts详解
  • 白盒测试-发送请求-引出MockMvc源码类
  • 通过网关将数据上传到两台eqmx服务器上
  • Linux企业级应用(一)构建企业级Linux应用平台:全面指南
  • 算法:外卖调度
  • Python自动化测试之selenium - 元素定位
  • 【人工智能】Transformers之Pipeline(九):物体检测(object-detection)
  • 企业信息化建设搞得好了叫系统工程,搞不好叫面子工程
  • 放飞孔明灯
  • MySql的默认隔离级别是什么?可以解决幻读问题吗?
  • 嵌入式八股文-网络编程、多线程和进程
  • 微服务保护-Sentinel
  • Java多线程练习(3)
  • #Java异常处理
  • 2017前端实习生面试总结
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • Angular4 模板式表单用法以及验证
  • ES6--对象的扩展
  • export和import的用法总结
  • express + mock 让前后台并行开发
  • js 实现textarea输入字数提示
  • k8s如何管理Pod
  • Python socket服务器端、客户端传送信息
  • vuex 学习笔记 01
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 翻译:Hystrix - How To Use
  • 分享几个不错的工具
  • 和 || 运算
  • 记录:CentOS7.2配置LNMP环境记录
  • 数据仓库的几种建模方法
  • 用jquery写贪吃蛇
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • # Redis 入门到精通(七)-- redis 删除策略
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • ## 1.3.Git命令
  • #Ubuntu(修改root信息)
  • (1)虚拟机的安装与使用,linux系统安装
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (3)(3.5) 遥测无线电区域条例
  • (二)Linux——Linux常用指令
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (一)基于IDEA的JAVA基础10
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .net core 使用js,.net core 使用javascript,在.net core项目中怎么使用javascript
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .NET单元测试
  • .Net多线程总结
  • .net网站发布-允许更新此预编译站点
  • .NET应用UI框架DevExpress XAF v24.1 - 可用性进一步增强
  • @hook扩展分析