【正文】进程与线程的综合概念与区别

前言

在教育专业正式地学习进程与线程是在操作系统这类相关的书籍中。在我们平时学习一门语言,比如Java和Python都要学习到多线程这个概念,学习了线程就应该也要了解进程,如果要彻底理解那么去翻翻操作系统的相应书籍或者通过其他渠道了解是很有必要的,今天主要是有些兴致,想写一写相关的一些概念,记录,也希望能帮助到其他人。

一.进程

1.进程的定义与特征

  1. 来一个常见的例子,在我们平时所使用的windows电脑中,在任务栏右键,任务管理器中可以查看当前电脑的进程。进程是程序的一次执行。它是一个动态的概念,表示的是一个过程。怎样理解动态和过程呢?从进程的创建,创建后需要相应的资源进行活动,最后到消亡。这就是动态性,过程。除此以外进程与进程之间相互独立,交叉使用CPU运行。这就是独立性并发性

2.进程和程序的区别

  1. 讲到进程就不可避免地说一下程序。程序(指令的有序集合,持久化存在)这是个静态概念,与进程相对应。
  2. 一个大白话,把程序放在计算机运行的过程就是进程

3.进程的基本状态及转换

  • 进程有三种基本的状态,分别为【就绪状态ready,执行状态running,阻塞状态block
    1. 就绪状态ready:表示的是进程准备好了可以使用CPU资源。这里要说ready态不一定就直接占用到CPU资源,这个与操作系统的调度相关。
    2. 执行状态running:表示的是进程已经在占用CPU资源执行。
    3. 阻塞状态block:表示进程等待某些指令或者其他必要资源所处的状态。
  • 用一张图来表示一下状态之间的转换,图画的不好,胜在简洁[滑稽],见谅。
    【正文】进程与线程的综合概念与区别
  • 有时也会加入创建进程结束进程,也就是
    【正文】进程与线程的综合概念与区别

二.线程

1.线程的引入

  1. 原本系统中没有线程的概念,因为某些原因引入线程概念。引入线程是为了减少进程并发消耗的资源,以更小的开销提高并发程度
  2. 进程有两个基本属性,一个是拥有资源的独立单位,可独立分配系统资源。另一个是可独立调度和分派的基本单位,进程之间的通讯效率低,可以将分配资源和调度两个属性分开,从而创建线程的概念。

2.线程基本概念

  1. 作为调度的基本单位,进程是系统资源分配的基本单位线程是处理器调度的单位
  2. 一个进程之下可以创建多个线程并发执行。在程序开发中,通常与一个函数对应。

三.线程与进程区别

相信看完上面的两个打点,区别也应该有所了解吧。其中也有说到进程与线程的区别。

1.不同点

  1. 进程是系统资源分配的基本单位线程是处理器调度的单位
  2. 进程并发开销比线程大。
  3. 进程的通信比线程更方便。

2.相似点

  1. 进程可以创建子进程,线程可以创建子线程。
  2. 一样拥有三种基本运行状态。
  3. 并发的过程中一样拥有同步、互斥的制约关系。