zoukankan      html  css  js  c++  java
  • IPC进程间通讯

    一、IPC(Inter-Process Communication)

    空间复用 中内存隔离开了多个进程直接不能直接交互

    1、几种方式 :

    1.创建一个共享文件

    ​ 缺点: 效率较低

    ​ 优点: 理论上交换的数据量可以非常大

    ​ 适用于: 交互不频繁 且数据量较大的情况

    2.共享内存 (主要方式)

    ​ 缺点: 数据量不能太大

    ​ 优点: 效率高

    ​ 适用于: 交互频繁,但是数据量小

    3.管道

    ​ 管道也是基于文件的 它是单向的 编程比较复杂

    4.socket

    ​ 编程复杂,更适用于基于网络来交换数据

    二、共享内存的三种方式

    1、Manger

    可以为我们创建 进程间同步的容器,但是没有处理安全问题 ,所以并不常用

    2、Queue

    Queue 翻译为队列 是一种特殊的容器 特殊之处在于存取顺序为先进先出

    可以帮我们完成进程间通讯

    from multiprocessing import Queue
    
    q = Queue(2) # 创建队列 并且同时只能存储2个元素
    q.put(1)
    q.put(2)
    
    # q.put(3,block=True,timeout=3) # 默认是阻塞的 当容器中没有位置了就阻塞 直到有人从里面取走元素为止
    print(q.get())
    print(q.get())
    print(q.get(block=True,timeout=3))# 默认是阻塞的 当容器中没有位置了就阻塞 直到有人存入元素为止
    

    扩展: 栈

    也是一种特殊的容器 特殊在于 存取顺序为 先进后出

    函数调用栈

    调用函数时 称之为 函数入栈

    函数执行结束 称之为函数出栈

  • 相关阅读:
    C/C++ 读文件
    算法和数据结构 图表示
    protobuf
    C/C++ jsoncpp
    C/C++ C++11作用域枚举
    腾讯云云函数快速入门实践
    Serverless 与 Flask 框架结合进行 Blog 开发
    从企业微信机器人到小爱同学,用 Serverless 实现生活智能化!
    基于 Serverless 与 Websocket 的聊天工具实现
    云函数 SCF 与对象存储实现 WordCount 算法
  • 原文地址:https://www.cnblogs.com/chuwanliu/p/11134360.html
Copyright © 2011-2022 走看看