进程线程协程

一、进程:

  进程是一个程序在一个数据集中的一次动态执行过程,可以理解为“正在执行的程序”。进程一般由程序集、数据集、进程控制块三部分组成。进程是系统进行资源分配和调度的基本单位,是操作系统的基础。进程是线程的容器,进程是程序的实体。

  程序集:描述进程要完成哪些功能以及如何完成

  数据集:程序在执行过程所需要使用的资源

  进程控制块:保存程序运行的状态

  进程的局限性是创建、撤销和切换的开销比较大。

二、线程

  线程也叫轻量级进程,它是一个基本的CPU执行单元,也是程序执行的最小单位。一个进程最少有一个主线程。

  线程的优点:减小了程序并发执行的开销,提高了系统的并发性能。

  线程的缺点:线程没有自己的系统资源,只有运行时不可缺少的资源,但是同一进程的各线程可以共享进程所拥有的系统资源。对于某些独占资源存在锁机制,处理不当会出现死锁。

三、协程

  协程是一种用户态的轻量级线程,又称微线程。协程调度完全由用户控制,相当于子程序。

  协程的优点:协程执行效率高。因为子程序切换不是线程切换,由程序自身控制,没有线程切换的开销。

        协程不需要多线程的锁机制。在协程中控制共享资源不加锁,只需要判断状态就好

四、进程和线程区别

  1、资源方面:进程间相互独立,同一进程的各线程间共享。某进程内的线程在其他进程不可见

  2、通信:进程间通信IPC,进程间可以直接读写进程数据段进行通信——需要进程同步和互斥手段辅助,以保证数据的一致性

  3、调度和切换:线程上下文切换比进程上下文切换要快的多

  4、在多线程OS中,线程不是一个可执行的实体

五、并发并行

  1、并行是两个或者多个时间在同一时刻发生的;而并发是两个或者多个时间在同一时间间隔发生。

  2、并行是在不同实体上的多个事件,并发是同一实体上多个事件

  3、在一台机器上同时处理多个文件;在多个处理器上同时处理多个任务

  解释:

    并行:同时做不同事情的能力

    并发:交替做不同事情的能力

  专业术语:

    并行:不同的代码块同时执行

    并发:不同的代码块交替执行

  并行并发的意义:

    并发和并行都可以处理“多任务”,二者的主要区别在于是否是“同时进行”多个的任务。

    但是 涉及到任务分解(有先后依赖的任务就不能做到并行)、任务运行(可能要考虑互斥、锁、共享等)、结果合并

                下一篇文章再贴代码

猜你喜欢

转载自www.cnblogs.com/MoonlightMaleGod/p/9562315.html