zoukankan      html  css  js  c++  java
  • 38.进程及同步异步的概念理解

    进程丶线程


    • 单进程丶多进程:
    • 单进程:同时只能处理一件事
    • 硬件可以同时支持多个事件
      • CPU核心,单核,多核
    • 多进程:提升程序效率,同时处理多个事件
      • 多核心的电脑下开展多个进程
      • 不是开的多就是好
    • 线程/进程的数量最好不要超过逻辑核心数的1.5~2倍
      • 逻辑核心:是抽象
      • 物理核心:真正存在的物理核心数
      • pip3 install psutil / import psutil / psutil.cpucount()   #在python中查看当前电脑的逻辑核心
    • 什么是进程:当前真正在运行的(内存中)的任务
    • 什么是程序:磁盘上的二进制文件
    • 进程的属性:
      • 每个进程彼此之间是独立,进程内存独立
      • PID:进程的编号
        • 范围0~65535
        • 进程ID是有限的,所以在使用后要记得释放
        • 整个系统下不会有重复的ID
      • PID:0 是看不到的
        • 调度进程,祖先进程,系统初始化的第一个进程
      • PID :1
        • init进程,由进程0创建,完成剩余的系统工作
        • 开启软件,回收没有没有人回收的资源,系统引导进程
      • PID:2
        • 内核线程管理 
      • UID,是哪个用户开启的进程 userID
        • linux下用户很多,用的很多
        • 比如root用户,超级用户
    • 进程PCB:process control block
      • 进程控制块:专门用来维护进程中的这些数据
      • 操作系统真正管理的一个数据结构
      • 1:PID丶UID
      • 2:调度状态
        • CPU在执行进程任务的时候,不是一直执行完
        • 轮询:遍历进程任务列队
        • 中断:那个进程有事,进程招手,CPU执行,现在用的大多数都是中断
          1. 进程的信号
          2. 挂起,休眠
          3. 运行,准备运行
        • 权重优先级:nice值-19 ~ +20
          1. 值越小,进程优先级越高
          2. 负数优先级只有超级用户可以设置
      • 3:使用的文件,设备,IO套接字
      • 4:处理信息:堆栈指针,计数器,寄存器
    • 进程状态:
      • 运行状态:实际占用CPU,正在工作的进程
      • 睡眠状态:当前进程处于等待,挂起状态
        • 连接别人
        • 下电影
        • 打来文件,把数据从磁盘搬到内存,消耗时间,对于CPU来说,这个时间太长
          1. CPU会直接切换,而不会等待
          2. 不能直接处理磁盘
          3. 只能处理内存数据
        • 如果以上事件完成,进程会被唤醒,被CPU处理
      •  暂停:打断点
      • 僵尸状态:僵尸状态是任何一个要结束的进程都要经历的,非常短暂
        • 进程在退出的时候,需要释放资源,但是会保留PCB
      • 停止状态:更短暂
        • 进程的最后一步
      • PPID:当前进程的父进程ID
        • PPID用来监护
        • 创建,释放
      • 孤儿进程:当前进程没有父进程
        • 1号(init)进程会查找,担任他们的父进程
      • 僵尸进程:子进程工作完毕,父进程不管,会有危害
        • 子进程会滞留在僵尸状态(PCB),PID占用
        • 占用完毕,没有办法创建新的
        • 记得一定要回收
    • 同步,异步
     
    • 同步:(同时间进行X),有序执行
      • 可以维护某些数据稳定有序
      • 尽量处于就绪状态,提高CPU占用率
      • 不能高效里用CPU资源
    • 异步:不管顺序,只要有CPU资源,我就执行
      • 高效的利用CPU资源
      • 导致数据,可能有些时候会在多个进程同时处理的时候,顺序不一致,导致混乱
      • 处理的数据太大,但是都是一个整体,开多个进程处理的快
      • 异步:随便拿,CPU有资源执行即可
  • 相关阅读:
    《将博客搬至CSDN》
    关于数据分析师出路的思考
    什么样的人适合学金融工程?
    再谈到计算机网络的学习
    学习金融工程的随笔
    走上量化投资道路的回顾
    idea构建docker镜像并发布到服务器
    Elastic:菜鸟上手指南
    分布式事务专题
    mysql 慢查询日志分析与使用
  • 原文地址:https://www.cnblogs.com/zhangan/p/10202278.html
Copyright © 2011-2022 走看看