• 进程、同步、异步、阻塞、非阻塞


    进程

    背景知识

    • 进程:运行中的程序,是计算机中最小的资源分配单位
    • 程序与进程的区别
      • C程序只是一个文件
      • 进程是这个文件的被CPU运行起来
    • 在操作系统中的唯一标识符:Pid

    操作系统调度进程的算法

    • 短作业优先
    • 先来先服务
    • 时间片轮转
    • 多级反馈算法:结合短作业优先、先来先服务与时间片轮转的算法
    • 尽量在程序的开始阶段少使用IO

    并行与并发

    • 并行
      • 两个程序 两个CPU 每个程序分别占用一个CPU自己执行自己的
      • 看起来是同时执行,实际在每个时间点上都在各自执行着
    • 并发
      • 两个程序 一个CPU 每个程序交替的在一个CPU上执行
      • 看起来在同时执行,但实际上仍然是hi串行的

    同步 异步 阻塞 非阻塞

    • 同步

      • 烧水、吹头发
      • 停下烧水 吹头发
      • 吹完头发之后继续烧水
      • 让你做某件事,但要等结果:喊你吃饭并在旁边等你一起去吃饭
    • 异步

      • 烧水 、 吹头发
      • 吹头发 、烧水也在继续
      • 让你做某件事,但不等结果:喊你去吃饭,然后直接走了
    • 阻塞:

      • CPU不工作
    • 非阻塞

      • CPU工作
    • 同步阻塞

      • cono.recv,需要等到recv的返回的信息之后函数cono才能继续执行
    • 同步非阻塞

      • func() 没有IO操作,cpu不暂停所以是非阻塞
      • 调用函数,但该函数内部不存在IO操作
    • 异步非阻塞

      • 把func扔到其他任务里去执行
      • 我本身的任务和func任务各自执行各自的 没有io操作,充分利用cpu的资源
      • 一个函数调用另外一个函数,但不用等其返回结果,继续自己的运行
    • 异步阻塞

      • 调用某个程序时,该程序继续执行,但本身具有IO操作时CPU陷入阻塞

    进程的三状态图

    • 就绪
    • 运行
    • 阻塞

    应用实例

    记录学习的点点滴滴
  • 相关阅读:
    C# 通过Attribute制作的一个消息拦截器
    Newtonsoft.Json高级用法
    这些年,我收集的JavaScript代码(一)
    Storm整体架构分析
    Worker的内部工作原理
    Storm源码分析
    Storm集群部署
    Storm 官方文档翻译 --- 消息的可靠性保障
    [转] 如何快速掌握一门新技术/语言/框架
    小狗钱钱读书笔记
  • 原文地址:https://www.cnblogs.com/yangzilaing/p/14849734.html
Copyright © 2020-2023  润新知