假期day2,进程间通信。(2024/2/3)

一:无名管道

1.没有名字的管道文件,数据交流的文件存储在内存中,不在文件系统中显示
2.创建管道后,会返回读端和写端的文件描述符,当两个端被关闭后,管道文件消失
3.无名管道只适用于亲缘进程的通信,需要在fork之前将管道打开,这样子进程也能继承管道描述符

二:有名管道

1.有名字的管道文件,会在文件系统中创建,类型p
2.该管道文件仅用于通信,不用于存储数据
3既可以用于亲缘进程,也适用于非亲缘进程通信

三:信号

1.使用软件模拟底层硬件的中断操作
2.信号是linux内核实现的
3.可以给进程发送信号,进程间可以发送信号,内核可以给进程发信号
4.进程接收信号的三个操作:默认,捕获,忽略

四:消息队列

使用key密钥在内核空间创建打开消息队列,信息包括数据类型和数据正文,通过不同的数据类型区分信息,进程间通过内核空间的消息队列进行数据共享

五:共享内存

共享内存的数据一直存在,通信效率高,操作数据时不需要进行用户空间和内核空间的切换。
1.在内核空间创建共享内存
2.将共享内存映射到用户空间,并返回地址
3.操作数据

六:信号灯集

控制多个进程间的同步
通过密钥key在内核空间创建信号灯集,每个灯都控制一个进程,灯维护了一个value值,值为零时阻塞,灯的编号从零开始

七:socket通信

Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口

相关推荐

  1. 假期day2进程通信。(2024/2/3)

    2024-02-04 01:22:03       50 阅读
  2. 假期day2

    2024-02-04 01:22:03       55 阅读
  3. Python进程通信

    2024-02-04 01:22:03       67 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-04 01:22:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-04 01:22:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-04 01:22:03       87 阅读
  4. Python语言-面向对象

    2024-02-04 01:22:03       96 阅读

热门阅读

  1. 五大架构风格之四-虚拟机架构风格

    2024-02-04 01:22:03       53 阅读
  2. 深入Go反射

    2024-02-04 01:22:03       41 阅读
  3. Go语言学习踩坑记

    2024-02-04 01:22:03       54 阅读
  4. 堆的实现(源码)

    2024-02-04 01:22:03       46 阅读
  5. mysql-常见函数合集

    2024-02-04 01:22:03       55 阅读
  6. 关于Python的学习笔记

    2024-02-04 01:22:03       47 阅读
  7. 2.3学习总结

    2024-02-04 01:22:03       49 阅读
  8. docker 运行jar包

    2024-02-04 01:22:03       44 阅读
  9. yum localinstall

    2024-02-04 01:22:03       40 阅读