程序、进程、线程区别与联系

定义:

  一 程序只是一组指令的有序集合。

  二 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位;

  三 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),一个线程可以创建和撤销另一个线程;

  一 进程与线程区别与联系

  (1) 划分尺度:线程更小,所以多线程程序并发性更高;

  (2) 资源分配&处理器调度:进程是资源分配的基本单位,线程是处理器调度的基本单位。  

(3) 地址空间:进程拥有独立的地址空间;线程没有独立的地址空间,同一进程内多个线程共享其资源;

  (4) 执行:每个线程都有一个程序运行的入口,顺序执行序列和程序的出口,但线程不能单独执行,必须组成进程,一个进程至少有一个主线程。简而言之,一个程序至少有一个进程,一个进程至少有一个线程。

  二 进程和程序区别和联系

  (1)程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。而进程则不同,它是程序在某个数据集上的执行。进程是一个动态的实体,它有自己的生命周期。反映了一个程序在一定的数据集上运行的全部动态过程。

  (2)进程和程序并不是一一对应的,一个程序执行在不同的数据集上就成为不同的进程,可以用进程控制块来唯一地标识每个进程。而这一点正是程序无法做到的,由于程序没有和数据产生直接的联系,既使是执行不同的数据的程序,他们的指令的集合依然是一样的,所以无法唯一地标识出这些运行于不同数据集上的程序。一般来说,一个进程肯定有一个与之对应的程序,而且只有一个。而一个程序有可能没有与之对应的进程(因为它没有执行),也有可能有多个进程与之对应(运行在几个不同的数据集上)。

  (3)进程还具有并发性和交往性,这也与程序的封闭性不同。

  进程和程序区别和联系表现在以下方面:

  1)程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。而进程则不同,它是程序在某个数据集上的执行。

  进程是一个动态的实体,它有自己的生命周期。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消。反映了一个程序在一定的数据集上运行的全部动态过程。

  2)进程和程序并不是一一对应的,一个程序执行在不同的数据集上就成为不同的进程,可以用进程控制块来唯一地标识每个进程。而这一点正是程序无法做到的,由于程序没有和数据产生直接的联系,既使是执行不同的数据的程序,他们的指令的集合依然是一样的,所以无法唯一地标识出这些运行于不同数据集上的程序。一般来说,一个进程肯定有一个与之对应的程序,而且只有一个。而一个程序有可能没有与之对应的进程(因为它没有执行),也有可能有多个进程与之对应(运行在几个不同的数据集上)。

  3)进程还具有并发性和交往性,这也与程序的封闭性不同。进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:

  简而言之,一个程序至少有一个进程,一个进程至少有一个线程.

  线程的划分尺度小于进程,使得多线程程序的并发性高。

  另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

  线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

  从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

  进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.

  线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.

  一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.

时间: 2024-10-29 00:12:33

程序、进程、线程区别与联系的相关文章

程序,进程,线程的最形象理解(理解不了可以直接怼我)

备注:阅读本博客之前,需要具备一点面向对象编程的知识(很少的一部分,别慌) 关于进程的一点理解 在任何时刻需要记住一点:任何某一时刻CPU只能执行一条指令,为 一个进程服务,而不是多个进程服务. 什么是多进程? 比如你可以一边听网易音乐,一边聊天:这是两个不同的进程,这就是多进程: 但是上文说某一时刻CPU只能干一件事情,是否矛盾? 在操作系统的管理下,所有正在运行的进程轮流使用CPU,每个进程允许占用CPU的时间非常短(比如1毫秒),这样用户根本感觉不出来 CPU是在轮流为多个进程服务,就好象

程序进程线程之间的区别

1.程序和进程区别: 程序: 静态的代码和数据集合:不能并发: 不具有唯一标识: 进程: 动态的程序执行过程: 可并发: 在内存中具有唯一标识: 2.进程和线程的区别: 进程:最小的资源(CPU,内存等)分配单位:创建过程会分配独立的内存空间:  更健壮: 进程之间的通信难: 线程:最小的程序执行单位:共享进程的数据:单个线程死亡后全部线程都关闭,不够健壮: 线程之间的容易通信: 原文地址:https://www.cnblogs.com/zhangcnblogs/p/11743934.html

进程线程区别,和线程初识

进程是计算机中最小的资源分配单位在利用多个CPU执行的过程中,对多个程序的资源进行管理和隔离 进程的弊端开启和关闭 以及 切换 都会带来很大的时间开销过多的进程还会造成操作系统调度的压力 线程线程是CPU调度的最小单位每个进程中至少有一个线程实际上执行代码的是线程 线程属于进程进程负责获取操作系统分配给我的资源线程负责执行代码 从代码的角度上来看 多进程 开启和结束 时间开销大 切换的效率低 内存隔离 多线程 开启和结束 时间开销非常小 切换效率高 内存不隔离 Cpython解释器下的全局解释器

进程、程序和线程的区别

 1.区别 ①程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念.而进程是程序在处理机上的一次执行过程,它是一个动态的概念. ②程序可以作为一种软件资料长期存在,而进程是有一定生命期的.程序是永久的,进程是暂时的. ③进程更能真实地描述并发,而程序不能: ④进程是由进程控制块.程序段.数据段三部分组成; ⑤进程具有创建其他进程的功能,而程序没有. ⑥同一程序同时运行于若干个数据集合上,它将属于若干个不同的进程,也就是说同一程序可以对应多个进程. ⑦在传统的操作系统中,程序

转: 关于程序 进程 和 线程

我对于线程,进程的概念一直都是比较模糊,最近整理了一下.总结起来就是,线程是进程的一部分,进程是程序的一部分. 线程的引入:例如,有一个Web服务器要进程的方式并发地处理来自不同用户的网页访问请求的话,可以创建父进程和多个子进程的方式来 进行处理,但是创建一个进程要花费较大的系统开销和占用较多的资源.除外,这些不同的用户子进程在执行的时候涉及到进程上下文切换,上下文切换是一个复杂 的过程.所以,为了减少进程切换和创建的开销,提高执行效率和节省资源,人们在操作系统中引入了"线程(thread)&q

什么是线程?它与进程的区别?为什么要使用多线程?

1.什么是线程? 线程是指程序在执行过程中,能够执行程序代码的一个执行单元,在Java语言中,线程有四种状态:运行,就绪,挂起,结束. 2.线程与进程的区别? 进程是一段正在运行的程序,而线程有时也被称为轻量级进程,它是进程的执行单元,一个进程可以拥有多个线程,各个线程之间共享程序的内存空间,但是,各个线程拥有自己的栈空间. 3.为什么使用多线程? (1).使用多线程可以减少程序的响应时间.单线程如果遇到等待或阻塞,将会导致程序不响应鼠标键盘等操作,使用多线程可以解决此问题,增强程序的交互性.

进程线程协程的区别

一.概念 1.进程 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.每个进程都有自己的独立内存空间,不同进程通过进程间通信来通信.由于进程比较重量,占据独立的内存,所以上下文进程间的切换开销(栈.寄存器.虚拟内存.文件句柄等)比较大,但相对比较稳定安全. 2.线程 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存

线程与进程的区别

线程是指进程内的一个执行单元,也是进程内的可调度实体. 与进程的区别: (1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间; (2)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源 (3)线程是处理器调度的基本单位,但进程不是. 4)二者均可并发执行. 进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性.进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有

iOS线程和进程的区别和联系

线程和进程的区别主要在于它们是不同的操作系统资源管理方式.进程有独立的地址空间,一个进程崩溃后,在保护模式的影响下不会对其他进程产生影响,而线程只是一个进程中的不同执行路径.线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等同于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些.但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程. 线程是CPU独立运行和独立调度的基本单位(可以理解为一个进程中执行的代码