进程和线程的概念和区别
1、概念:
进程(Process)是具有⼀定独⽴功能的程序关于某个数据集合上的⼀次运⾏活动,是系统进⾏资源分配和调度的⼀个独⽴单位。程序只是⼀组指令的有序集合,它本⾝没有任何运⾏的含义,只是⼀个静态实体。⽽进程则不同,它是程序在某个数据集上的执⾏,是⼀个动态实体。它因创建⽽产⽣,因调度⽽运⾏,因等待资源或事件⽽被处于等待状态,因完成任务⽽被撤消,反映了⼀个程序在⼀定的数据集上运⾏的全部动态过程。
线程(Thread)是进程的⼀个实体,是CPU调度和分派的基本单位。线程不能够独⽴执⾏,必须依存在应⽤程序中,由应⽤程序提供多个线程执⾏控制。
2、⼆者关系
线程和进程的关系是:线程是属于进程的,线程运⾏在进程空间内,同⼀进程所产⽣的线程共享同⼀内存空间,当进程退出时该进程所产⽣的线程都会被强制退出并清除。线程可与属于同⼀进程的其它线程共享进程所拥有的全部资源,但是其本⾝基本上不拥有系统资源,只拥有⼀点在运⾏中必不可少的信息(如程序计数器、⼀组寄存器和栈)。
3、操作系统分类
根据进程与线程的设置,操作系统⼤致分为如下类型:
(1)单进程、单线程,MS-DOS就是这种操作系统;
(2)多进程、单线程,多数UNIX(及类UNIX的LINUX)是这种操作系统;
(3)多进程、多线程,Win32(Windows NT/2000/XP等)、Solaris 2.x和OS/2都是这种操作系统;
(4)单进程、多线程,VxWorks是这种操作系统。
4、引⼊线程的好处
在操作系统中引⼊线程带来的主要好处有:
(1)通过进程来创建、终⽌线程⽐单独地通过应⽤程序来创建、终⽌线程要快;
(2)同⼀进程内的线程间切换⽐进程间的切换要快,尤其是⽤户级线程间的切换。另外,线程的出现还有以下⼏个原因:
①并发程序的并发执⾏,在多处理环境下更为有效。⼀个并发程序可以建⽴⼀个进程,⽽这个并发程序中的若⼲并发程序段就可以分别
建⽴若⼲线程,使这些线程在不同的处理机上执⾏。
②每个进程具有独⽴的地址空间,⽽该进程内的所有线程共享该地址空间。这样可以解决⽗⼦进程模型中,⼦进程必须复制⽗进程地
址空间的问题。
一个线程可以包含多个进程③线程对解决客户/服务器模型⾮常有效。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论