linux 进程间通信方式
2024-08-22 20:24:43
管道:
它包括无名管道和有名管道两种,前者用于父进程和子进程间的通信,后者用于运行于同一台机器上的任意两个进程间的通信
消息队列:
用于运行于同一台机器上的进程间通信,它和管道很相似,是一个在系统内核中用来保存消息的队列,它在系统内核中是以消息链表的形式出现。消息链表中节点的结构用msg声明。
共享内存:
共享内存是运行在同一台机器上的进程间通信最快的方式,因为数据不需要在不同的进程间复制。通常由一个进程创建一块共享内存区,其余进程对这块内存区进行 读写。
得到共享内存有两种方式:映射/dev/mem设备和内存映像文件。 前一种方式不给系统带来额外的开销,但在现实中并不常用,因 为它控制存取的将是 实际的物理内存,在Linux系统下,这只有限制Linux系统存取的内存才可以做到,这当然不太实际。常用的方式是通过shmXXX函数族来实现利 用共享内存进行存储的。
信号量:
信号量又称为信号灯,它是用来协调不同进程间的数据对象的,而最主要的应用是前一节的共享内存方式的进程间通信。本质上,信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取状况。
套接口(socket)编程:
是实现Linux系统和其他大多数操作系统中进程间通信的主要方式之一。我们熟知的WWW服务、FTP服务、TELNET服务 等都是基于套接口编程来实现的。除了在异地的计算机进程间以外,套接口同样适用于本地同一台计算机内部的进程间通信
最新文章
- spring帝国-开篇
- IOS 2D游戏开发框架 SpriteKit-->;续(创建敌对精灵)
- 【码在江湖】前端少侠的json故事(上)日月第一击
- [Hadoop大数据]——Hive初识
- 自制编程语言crowbar(v0.1)构建解析器时分配内存
- Handler.sendMessage 与 Handler.obtainMessage.sendToTarget比较
- CSS自定义select下拉选择框(不用其他标签模拟)
- CentOS7安装和配置FTP
- Android WebRTC视频旋转问题
- 使用react-native做一个简单的应用-04界面主框架
- .net带参数SQL语句的完整定义
- go语言nsq源码解读一-基本介绍
- python -- ajax数组传递和后台接收
- SPOJ Distinct Substrings SA
- CentOS 6.x下wget 下载提示 Unable to locally verify the issuer’s authority 完美解决方案
- 树莓派.Qt.打包开发好的程序并运行的方法
- spring mvc 数据转换
- python学习之老男孩python全栈第九期_day015作业_老男孩Python全9期练习题(面试真题模拟)
- Java 面向对象之接口、多态
- python中json库中的load、loads、dump、dumps的区别与用法