美文网首页
进程与线程概述

进程与线程概述

作者: Visualing | 来源:发表于2018-03-15 20:09 被阅读0次

进程与线程

首先来一句概括的总论:进程和线程都是一个CPU工作时间段的描述,进程是描述一定任务的,而线程是对应任务的分解,线程的集合就是进程。

下面细说背景:(部分引用自知乎问答)

CPU+RAM+各种资源(比如显卡,光驱,键盘,GPS, 等等外设)构成我们的电脑,但是电脑的运行,实际就是CPU和相关寄存器以及RAM之间的事情。

一个最最基础的事实:CPU太快,太快,太快了,寄存器仅仅能够追的上他的脚步,RAM和别的挂在各总线上的设备完全是望其项背。那当多个任务要执行的时候怎么办呢?轮流着来?或者谁优先级高谁来?不管怎么样的策略,一句话就是在CPU看来就是轮流着来。

一个必须知道的事实:执行一段程序代码,实现一个功能的过程介绍 ,当得到CPU的时候,相关的资源必须也已经就位,就是显卡啊,GPS啊什么的必须就位,然后CPU开始执行。这里除了CPU以外所有的就构成了这个程序的执行环境,也就是我们所定义的程序上下文。当这个程序执行完了,或者分配给他的CPU执行时间用完了,那它就要被切换出去,等待下一次CPU的执行时间。在被切换出去的最后一步工作就是保存程序上下文,因为这个是下次他被CPU执行时间的运行环境,必须保存,否则就无法继续之前的任务了。

串联起来的事实:前面讲过在CPU看来所有的任务都是一个一个的轮流执行的。

具体的轮流方法就是:先加载程序A的上下文,然后开始执行A,保存程序A的上下文,调入下一个要执行的程序B的程序上下文,然后开始执行B,保存程序B的上下文。。。。

从上面我们知道了一个事实就是:进程=(CPU加载上下文+CPU执行时间+CPU保存上下文)*N

线程是什么呢?

由于进程的颗粒度太大,而且软件的执行不可能是一条逻辑执行的,必定有多个分支和多个程序段,就好比要实现程序A,实际分成 a,b,c等小任务组合而成。那么可以切割任务的地方就是CPU执行时间了,通过切割CPU时间来实现 a,b,c等小任务的相互合作完成程序A。那么我们现在就可以把确立下面的公式了。

线程 = ( 程序A的a小段 + 程序A的b小段 + 程序A的c小段 )*N

综合两个公式,那么有以下公式

进程 =(CPU加载上下文 + ( 程序A的a小段 + 程序A的b小段 + 程序A的c小段 )*N + CPU保存上下文 )*N

也就是说线程是共享了进程的上下文环境,是更为细小的CPU时间段。

那么我们现在来总结一下网络上对进程和线程的说法:

(1)进程是资源的分配和调度的一个独立单元,而线程是CPU调度的基本单元

(2)同一个进程中可以包括多个线程,并且线程共享整个进程的资源(寄存器、堆栈、上下文),一个进程至少包括一个线程。

(3)进程结束后它拥有的所有线程都将销毁,而线程的结束不会影响同个进程中的其他线程的结束

(4)线程是轻量级的进程,它的创建和销毁所需要的时间比进程小很多,所有操作系统中的执行功能都是创建线程去完成的

(5)线程中执行时一般都要进行同步和互斥,因为他们共享同一进程的所有资源

相关文章

  • 进程与线程概述

    进程与线程 首先来一句概括的总论:进程和线程都是一个CPU工作时间段的描述,进程是描述一定任务的,而线程是对应任务...

  • 进程与线程 -- 概述

    多任务 现代操作系统比如Mac OS X,UNIX,Linux,Windows等,都是支持“多任务”的操作系统。 ...

  • 多线程1,线程基础知识

    多线程基础知识 目录介绍 1.进程概述及多进程的意义[理解]1.1 线程和进程1.2 进程概述1.3 多进程的意义...

  • 进程 & 线程概述

    一、进程 1.进程的定义 进程是操作系统为了实现CPU级别的并发而抽象出来的一个概念,表示加载在内存中,进行中的程...

  • JAVA基础系列(八) 多线程

    假如一个程序有多条执行流程,那么,该程序就是多线程程序。 1.多线程概述 1.1 进程与线程 进程:正在运行的程序...

  • 线程

    线程 一、线程的概述 1.进程与线程 进程:正在运行的程序,负责了这个程序的内存空间分配,代表了内存中的执行区域。...

  • linux进程间通信(1)

    一、进程通信概述 1、什么是进程间通信?什么是线程间通信? 进程间通信: 进程间通信就指的是用户空间中进程A与进程...

  • 多线程及网络编程

    多线程1.多线程的概述: 进程有多条执行路径,合称为多线程.进程:可执行文件(程序).eg:exe文件线程:进程的...

  • Java多线程(一)基础知识

    线程概述 线程与进程 进程  每个运行中的任务(通常是程序)就是一个进程。当一个程序进入内存运行时,即变成了一个进...

  • 多线程

    1.线程概述 线程是进程的执行单元,进程具有:独立性,动态性,并发性三个特征。线程是进程的组成部分,一个进程...

网友评论

      本文标题:进程与线程概述

      本文链接:https://www.haomeiwen.com/subject/nsqkqftx.html