下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

区分线程、进程和程序,三者间存在什么联系?

作者:小K     来源: http://www.kokojia.com点击数:2530发布时间: 2018-04-27 09:00:22

标签: 线程进程程序

  线程、进程和程序是什么?区别又是什么?这个应该是操作系统里问的最多的问题在之一,也是被误解最深的概念之一。下面就和课课家小编一起来探讨一下吧。
  程序、进程和线程的区别
  程序(program)是实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。为实现预期目的而进行的操作的一系列语句和指令。一般分为系统程序和应用程序量大类。计算机中的程序在港澳台地区称为程式。程序就是为使用电子计算机执行一个或多个操作,或执行某一任务,按序设计的计算机指令集合。
  进程(有时被称为重量级进程)是程序的一次执行任务。每一个进程都有自己的地址空间、内存、数据栈以及其它记录器运行轨迹的辅助数据。操作系统管理子其运行的所有进程,并为这些进程公平地分配时间。
  不过各个进程都有自己的内存空间,数据栈等,所以只能使用进程间通讯(IPC),而不能直接共享信息。
  线程,有时被称为轻量级进程(lightweight process,LWP)是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其他吸纳成共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。每一个程序都至少有一个线程,那就是线程本身。

区分线程、进程和程序,三者间存在什么联系?_线程_进程_程序_课课家教育
  程序和进程的区别:
  C、C++、java等语言编写的源程序经相应的编译器编译成可执行的文件后,提交给计算机处理器运行。运用程序的状态称为进程。进程与应用程序的区别在于应用程序作为一个静态文件存储在计算机系统的硬盘等存储空间中,而进程则是处于动态条件下由操作系统维护的资源管理实体。可以从以下几方面进行区别:
  1.进程时动态的,而程序是静态的
  2.进程有一定的生命周期,而程序是指令的集合,本身无“运动”的含义
  3.一个进程智能对应一个程序,一个程序可以对应一个进程。进程和程序的关系就行戏剧和剧本之间的关系。
  进程和线程的区别:
  线程和进程时另一对有一样的概念,主要区别和联系如下:
  1.进程是操作系统进行资源分配的基本单位,拥有完整的进程空间。进行系统资源分配的时候,除了CPU资源之外,不会给线程分配独立的资源,线程所需要的资源需要共享。
  2.线程是进程的一部分,如果没有进行显示的线程分配,可以认为进程是单线程的;如果进程中建立了线程,则可认为系统是多线程的。
  3.多线程和多进程是两种不同的概念。多线程与多进程有不同的资源共享方式。
  4.进程有进程控制块PCB,系统通过PCB对进程进行调度。进程有线程控制块TCP,但TCB所表示的状态比PCB要少的多。
  基于上面的讲述,对于程序、进程和线程,你都清楚了吗?希望这些内容对你的学习有所帮助。

赞(17)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程