zoukankan      html  css  js  c++  java
  • Linux 的进程间通信方式(IPC)

    进程间通信(IPC)是什么

      现在操作系统都是多进程,各个进程并发的执行,进程间基本都会涉及到数据的共享,这就需要进程之间通信去交换数据,但是进程本身之间是无法之间交流的,这就是本文讨论的问题。

    Linux进程间的通信方式主要有下面几种

      1.管道。

        管道是在内存创建一个大小为Page的共享内存区域的文件。

        管道(pipe),Linux上的管道在具体实现中,根据通信所使用的的文件是否具有名称,分两种类型:

          1)匿名管道。

            匿名管道最常见的形态就是我们在shell操作中最常用的”|”。

          2)命名管道FIFO。

        管道不适合大量数据的传输。

      2.消息队列。

        消息队列会有两次的copy,会造成额外的消耗。不适合频繁及数据量很大。

      3.共享内存。

        共享内存就是不同的虚拟地址内存映射到相同的物理内存上。可以对相同的一块区域读写。它不需要复制,多个进程可以共享一块内存,但是各个进程之间没有同步的机制,所以需要额外去实现同步机制来保证数据的一致性。

      4.套接字(socket),服务端的进程和客户端的进程模式,走的是网络通信,所以效率比较低。

      5.信号量。

        信号量是一种锁机制,是为了防止多个进程之间访问共享资源一种同步的技术。

      6.信号。

         信号主要用于操作系统给进程发送信号,比如操作系统给某个进程发送中断信号。

  • 相关阅读:
    arcgis python 把多个MXD批量导出一个PDF
    arcgis python pdf合并
    arcgis python 列出一个表所有字段
    arcgis python 随机取部分数据
    arcgis python 删除一个数据库所有数据
    python将py文件转换为pyc
    从 10.x 到 ArcGIS Pro 的 Python 迁移
    Entity Framework 6.X实现记录执行的SQL功能
    Entity Framework 5.0系列之EF概览-三种编程方式
    Entity Framework 全面教程详解(转)
  • 原文地址:https://www.cnblogs.com/songgj/p/11212096.html
Copyright © 2011-2022 走看看