zoukankan      html  css  js  c++  java
  • 进程

    Process

    并发 / 并行

    并发: 同一时间段内 多个任务交替使用同一个CPU

    并行: 同一时刻 多个任务在不同的CPU上同时运行

    同步/异步

    同步:调一个任务,等待这个任务返回结果,才能继续执行其他代码

    异步:调一个任务,不等待这个任务 ,

    阻塞/非阻塞

    阻塞:在当前这个任务中 CPU不工作 空闲

    非阻塞:CPU工作 为当前程序提供服务

    Start 异步非阻塞

    Terminate  异步非阻塞

    Join 同步阻塞

    Join(限定等待时间)

    Process模块提供给我们的 对子进程同步管理的方法

    开启进程Process

    实例化 的时候引用的参数: target = 函数名,args=(fruit,)

    方法: start 开启进程 terminate 结束进程  join 等在子进程结束

    属性:

    Name 进程名 pid进程id

    Daemon 一定要在start之前设置 设置一个子进程为守护进程,守护进程在主进程的代码结束之后结束

    用类的方式开启子进程:

    IO操作

    I  input 输入 输入到内存

    O output 输出 从内存往外(网络 硬盘 数据库等)输出

    队列

    多个进程之间的数据是隔离的

    进程之间的数据交互是可以通过网络/文件来实现的

    Socket来实现的

    也叫IPC-->inter process communication  进程之间的通信

    通过python的模块实现的

    基于原生socket

    基于进程队列的  *****

    通过第三方软件/工具来实现: 基于网络

    自己写的代码少 新能好 但是需要安装

    消息中间:

    生产者 消费者模型:

    获得数据:生产者

    处理数据:消费者

    调节生产者的个数或者消费者的个数来让程序的效率达到最平衡和最大化

    解耦的思想

    Producer 生产者

    Consumer 消费者

    供大于求

    同一时刻同一段代码,只能有一个进程来执行过这段代码

    保证数据安全

    多进程中,只有去操作一些进程之间可以共享的数据资源的时候才需要进行加锁

    Lock = lock()

    Acquire release

    With lock:

    Lock  互斥锁

    ipc

    队列

    Put

    Get

    生产者 消费者模型

    基于队列把生产者和消费者的过程分开

    补充:

    队列 是进程安全的

    队列 自带了锁 每次都带lock

    基于什么实现的

    基于文件家族的socket 通信完成的

    上面服务实现ipc机制不止队列一个,管道pipe

    队列 == 管道+

    管道 是基于文件家族的socket服务实现的

    纯概念:

    : lock    lock.acquire()  获取锁

         Lock.release()  释放锁

    锁的应用场景: 当多个进程需要操作同一个文件

     

    队列: 进程之间的通信

  • 相关阅读:
    PowerDesigner将PDM导出生成WORD文档
    哨兵机制
    redis 主从数据同步
    redis RDB
    redis AOF机制
    redis数据结构
    dependencyManagement 和 dependencies的区别
    同源策略 跨域资源共享
    高可用 可扩展 多层反向代理架构演进
    String 杂记
  • 原文地址:https://www.cnblogs.com/zhangxiangning/p/10717208.html
Copyright © 2011-2022 走看看