欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

进程线程协程

程序员文章站 2023-09-28 14:58:49
一、进程: 进程是一个程序在一个数据集中的一次动态执行过程,可以理解为“正在执行的程序”。进程一般由程序集、数据集、进程控制块三部分组成。进程是系统进行资源分配和调度的基本单位,是操作系统的基础。进程是线程的容器,进程是程序的实体。 程序集:描述进程要完成哪些功能以及如何完成 数据集:程序在执行过程 ......

一、进程:

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

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

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

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

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

二、线程

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

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

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

三、协程

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

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

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

四、进程和线程区别

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

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

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

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

五、并发并行

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

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

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

  解释:

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

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

  专业术语:

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

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

  并行并发的意义:

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

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

                下一篇文章再贴代码