程序、进程、线程区别与联系
定义:
⼀程序只是⼀组指令的有序集合。
⼆进程是具有⼀定独⽴功能的程序关于某个数据集合上的⼀次运⾏活动,是系统进⾏资源分配和调度的⼀个独⽴单位;
三线程是进程的⼀个实体,是CPU调度和分派的基本单位,它是⽐进程更⼩的能独⽴运⾏的基本单位.线程⾃⼰基本上不拥有系统资源,只拥有⼀点在运⾏中必不可少的资源(如程序计数器,⼀组寄存器和栈),⼀个线程可以创建和撤销另⼀个线程;
⼀进程与线程区别与联系
(1) 划分尺度:线程更⼩,所以多线程程序并发性更⾼;
(2) 资源分配&处理器调度:进程是资源分配的基本单位,线程是处理器调度的基本单位。
(3) 地址空间:进程拥有独⽴的地址空间;线程没有独⽴的地址空间,同⼀进程内多个线程共享其资源;
(4) 执⾏:每个线程都有⼀个程序运⾏的⼊⼝,顺序执⾏序列和程序的出⼝,但线程不能单独执⾏,必须组成进程,⼀个进程⾄少有⼀个主线程。简⽽⾔之,⼀个程序⾄少有⼀个进程,⼀个进程⾄少有⼀个线程。
⼆进程和程序区别和联系
(1)程序只是⼀组指令的有序集合,它本⾝没有任何运⾏的含义,它只是⼀个静态的实体。⽽进程则不同,它是程序在某个数据集上的执⾏。进程是⼀个动态的实体,它有⾃⼰的⽣命周期。反映了⼀个程序在⼀定的数据集上运⾏的全部动态过程。
(2)进程和程序并不是⼀⼀对应的,⼀个程序执⾏在不同的数据集上就成为不同的进程,可以⽤进程控制块来唯⼀地标识每个进程。⽽这⼀点正是程序⽆法做到的,由于程序没有和数据产⽣直接的联系,既使是执⾏不同的数据的程序,他们的指令的集合依然是⼀样的,所以⽆法唯⼀地标识出这些运⾏于不同数据集上的程序。⼀般来说,⼀个进程肯定有⼀个与之对应的程序,⽽且只有⼀个。⽽⼀个程序有可能没有与之对应的进程(因为它没有执⾏),也有可能有多个进程与之对应(运⾏在⼏个不同的数据集上)。
(3)进程还具有并发性和交往性,这也与程序的封闭性不同。
进程和程序区别和联系表现在以下⽅⾯:
1)程序只是⼀组指令的有序集合,它本⾝没有任何运⾏的含义,它只是⼀个静态的实体。⽽进程则不同,它是程序在某个数据集上的执⾏。
进程是⼀个动态的实体,它有⾃⼰的⽣命周期。它因创建⽽产⽣,因调度⽽运⾏,因等待资源或事件⽽被处于等待状态,因完成任务⽽被撤消。反映了⼀个程序在⼀定的数据集上运⾏的全部动态过程。
2)进程和程序并不是⼀⼀对应的,⼀个程序执⾏在不同的数据集上就成为不同的进程,可以⽤进程控制块来唯⼀地标识每个进程。⽽这⼀点正是程序⽆法做到的,由于程序没有和数据产⽣直接的联系,既使是执⾏不同的数据的程序,他们的指令的集合依然是⼀样的,所以⽆法唯⼀地标识出这些运⾏于不同数据集上的程序。⼀般来说,⼀个进程肯定有⼀个与之对应的程序,⽽且只有⼀个。⽽⼀个程序有可能没有与之对应的进程(因为它没有执⾏),也有可能有多个进程与之对应(运⾏在⼏个不同的数据集上)。
3)进程还具有并发性和交往性,这也与程序的封闭性不同。进程和线程都是由操作系统所体会的程序运⾏的基本单元,系统利⽤该基本单元实现系统对应⽤的并发性。进程和线程的区别在于:
简⽽⾔之,⼀个程序⾄少有⼀个进程,⼀个进程⾄少有⼀个线程.
线程的划分尺度⼩于进程,使得多线程程序的并发性⾼。
另外,进程在执⾏过程中拥有独⽴的内存单元,⽽多个线程共享内存,从⽽极⼤地提⾼了程序的运⾏效率。
线程在执⾏过程中与进程还是有区别的。每个独⽴的线程有⼀个程序运⾏的⼊⼝、顺序执⾏序列和程序的出⼝。但是线程不能够独⽴执⾏,必须依存在应⽤程序中,由应⽤程序提供多个线程执⾏控制。
从逻辑⾓度来看,多线程的意义在于⼀个应⽤程序中,有多个执⾏部分可以同时执⾏。但操作系统并没有将多个线程看做多个独⽴的应⽤,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。
进程是具有⼀定独⽴功能的程序关于某个数据集合上的⼀次运⾏活动,进程是系统进⾏资源分配和调度的⼀个独⽴单位.一个线程可以包含多个进程
线程是进程的⼀个实体,是CPU调度和分派的基本单位,它是⽐进程更⼩的能独⽴运⾏的基本单位.线程⾃⼰基本上不拥有系统资源,只拥有⼀点在运⾏中必不可少的资源(如程序计数器,⼀组寄存器和栈),但是它可与同属⼀个进程的其他的线程共享进程所拥有的全部资源.
⼀个线程可以创建和撤销另⼀个线程;同⼀个进程中的多个线程之间可以并发执⾏.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论