进程、线程与协程(概念和优缺点)

发布于 25 天前  62 次阅读


Demo

Introduction

  • 进程
    • 定义
      • 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,通俗讲就是正在运行中的程序。进程是系统进行资源分配的基本单位。进程是线程的容器,是程序的实体
    • 组成
      • 程序集:描述进程要完成哪些功能以及如何完成
      • 数据集:程序在执行过程所需要使用的资源
      • 进程控制块:保存程序运行的状态
    • 特征
      • 动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的
      • 并发性:任何进程都可以同其他进程一起并发执行
      • 独立性:进程是系统进行资源分配和调度的一个独立单位
      • 异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进
      • 结构性:进程由程序、数据和进程控制块三部分组成
    • 局限性
      • 创建、撤销和切换的开销比较大

  • 线程
    • 定义
      • 被称为轻量级的进程,是一个基本的CPU单元,也是程序执行的最小单元。一个进程至少有一个主线程
    • 特点
      • 轻型实体
      • 减小了程序并发执行的开销,提升了系统的并发性能
      • 共享进程资源
    • 缺点
      • 线程没有自己的系统资源,只有运行时不可缺少的资源。但是同一进程的各线程可以共享进程所拥有的的系统资源。对于某些独占资源存在锁机制,使用不当可能会导致死锁

  • 协程
    • 定义
      • 协程是一种用户态的轻量级线程,又称微线程。协程调度完全由用户控制,相当于子程序
    • 特点
      • 协程执行效率高。因为子程序切换不是线程切换,由程序自身控制,没有线程切换的开销

Day in and day out .