程序,进程,线程三者的区别

来源:互联网 发布:淘宝网app电脑版 编辑:程序博客网 时间:2024/05/18 20:10

程序

计算机程序,是指为了得到某种结果而可以由计算机等具信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。


进程

为了使程序并发执行,并且可以对并发执行的程序加以描述和控制,人们引入了进程,使参与并发执行的每个程序都能独立地运行,在操作系统中必须为之配置一个专门的数据结构,称作进程控制块(PCB)。系统利用PCB来描述进程的基本情况和活动过程,进而控制和管理进程。这样,有程序段、相关数据段和PCB三部分就构成了进程实体(又叫进程映像)。我们一般情况下把进程实体就简称为进程。可以定义为:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。


线程

线程是进程的基础,线程的引入是为了减少程序在并发执行时所付出的时空开销,是OS具有更好的并发性。进一步改善系统的服务质量。线程是比进程的更小基本单位。


进程和线程都是操作系统的概念。进程是应用程序的执行实例,每个进程都是由私有的虚拟地址空间、代码、数据和其他各种资源组成,进程在运行过程中创建的资源随着进程的终止而被销毁,所使用的系统资源在进程终止时被释放或关闭。

简单地说,把正在计算机中执行的程序叫做“进程(Process)”。而“线程(Thread)”是进程中某个单一顺序的控制流,它记录了程序指令的踪迹。线程是进程内部的一个执行单元。系统创建好进程后,实际上就启动了该进程的主执行线程,主执行线程以函数地址形式将程序的启动点提供给Windows系统。主执行线程终止了,进程也随之终止。程序设计员可以通过Java应用编程接口API,使含有执行的线程的应用软件同时运行。在这里,每一线程是指可以与其他线程同时执行的一部分程序,称为多线程。

多线程可以实现并行处理,避免了某项任务长时间占用CPU时间。在单CPU计算机中,为了运行所有这些线程,操作系统需要为每个独立线程安排一些CPU时间,操作系统以轮换方式向线程提供时间片,在宏观上似乎这些线程都在同时运行。

原创粉丝点击