| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 《Linux C编程完全解密》第10章 进程间通信(IPC) -> 正文阅读 |
|
[系统运维]《Linux C编程完全解密》第10章 进程间通信(IPC) |
更优秀的介绍: 进程间通信(IPC)介绍1. 管道
匿名管道(pipe)是一种半双工的通信方式,数据只能单向流动,而且只能在父子进程间使用。 通过匿名管道实现进程间通信的步骤如下:
高级管道(popen)将另一个程序当做一个新的进程在当前程序进程中启动,则它算是当前程序的子进程,这种方式我们成为高级管道方式。 有名管道 (named pipe) 也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。 2. 信号
信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。 3. 信号量
Linux中信号量有两组接口:
为了使信号量能够在进程间共享数据,需能够执行原子操作(一组操作不允许中断,要么全部执行,要么都不执行),信号量必须由内核提供。 Linux通过内核维护了一个semid_ds数据结构实例,定义在头文件linux/sem.h。
4. 共享内存
允许两个不相关的进程同时访问一块内存空间,如果一个进程向这段共享内存写了数据,其他进程就会立即看到。 由于共享内存机制本身不能处理同步问题,因此它长和其他通信机制(如信号量)结合使用。 Linux通过内核维护了一个shmid_ds数据结构实例,定义在头文件linux/shm.h。 5. 消息队列
消息队列是一个存放在内核的消息链表,它允许一个或多个进程向它读写消息。 消息队列克服了信号量传递信息少,管道只能支持无格式字节流和缓冲区受限的缺陷,另外消息队列不需要进程自己来提供同步机制。 Linux用一个msg_queue结构来保存消息队列的队列头(链表的头指针)。 套接字通信套接字(socket)与其他通信机制不同的是,它可用于不同机器间的进程通信。 bind,listen,accept,connect,read,write,close |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 6:59:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |