• 进程概念总结


    进程:

      是操作系统的发展过程中,为了提高cpu的利用率,在操作系统同时运行多个程序的时候,为了数据的安全代码不混乱而被创造出来的一个概念

      每一个程序运行起来都至少是一个进程

      进程是计算机中最小的资源分配单位

      进程被操作系统调度的,有很多相关的算法----早期的操作系统

      进程之间是数据隔离的

      进程的三状态  就绪 运行 阻塞

    同步异步

      同步:

        一个任务执行依赖另一个事物的结束

        #列子  join   lock

      异步:

        一个任务的执行不依赖另一个事物的结束

         #列子  start   terminate

    阻塞非阻塞:

      阻塞: accept  recv  recvfrom queue.get join4

      非阻塞:setblocking = False

      异步非阻塞最好

    并行:

      并行是特殊的并发

      并行就是同一时刻两个以上的程序同时在cpu上执行

    并发

      并发就是,同一时段两个以上的程序看起来在同时执行

    IO概念: 文件操作 数据库操作 网络传输,用户输入输出

      input:得到的是bytes/str就是input

      Output:发送数据/输出数据

    因为进程与进程之间本质上是异步且数据隔离

    守护进程:

      守护进程是一个子进程

      守护进程会在主进程代码结束之后才结束
    为什么会这样?
       由于主进程必须要回收所有的子进程的资源
      所以主进程必须在子进程结束之后才能结束
      而守护进程就是为了守护主进程存在的
      不能守护到主进程结束,就只能退而求其次,守护到代码结束了
        守护到主进程的代码结束,意味着如果有其他子进程没有结束,守护进程无法继续守护
    解决方案 : 在主进程中加入对其他子进程的join操作,来保证守护进程可以守护所有主进程和子进程的执行
    如何设置守护进程
    子进程对象.daemon = True 这句话写在start之前

    同步控制:

      join

      锁-互斥锁: 多个进程同时对一个数进行操作的时候,操作同一个文件/数据库/管道

      信号量

      事件

    数据共享----数据不安全

      manager

    IPC----进程之间的通信

      管道

      队列---生产者消费者模型(为了解决数据的生产和处理的效率问题)

      第三方工具(消息队列,消费中间件)

    进程池

      解决大量任务开启多个进程的开销过大的问题

      节省资源,提高并发效率的

      一般开数据

  • 相关阅读:
    C#操作Windows控制面板
    WPF打印控件内容
    LINQ函数
    通过实现System.IComparable接口的CompareTo方法对两个类进行比较
    泛型和约束
    CSS样式基础总结
    C#调用百度高精度IP定位API通过IP获取地址
    软件下载路径
    RNN学习资料
    mysql 不能插入中文记录
  • 原文地址:https://www.cnblogs.com/liurenli/p/10100566.html
Copyright © 2020-2023  润新知