您的位置:首页 > 其它

进程和线程的区别

2016-05-10 15:08 246 查看
进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位,每一个进程都有一个自己的地址空间,即进程空间或虚空间,进程空间的大小只与处理机的位数有关,一个16位长处理机的进程空间大小为216,而32位处理机的进程空间大小为232,进程至少有5种基本状态:初始态、执行态、等待状态、就绪状态、终止状态

线程,在网络或多用户环境下,一个服务器通常需要接收大量且不确定数量用户的并发请求,考虑到无论是从系统资源开销方面或者响应用户请求的效率方面来看,为每一个请求都创建一个进程显然是行不通的,因此,操作系统中线程的概念便被引进了,线程,只是进程的一部分,一个没有线程的进程可以被看作是单线程的,在单个程序中同时运行多个线程完成不同的工作,称为多线程,多线程主要是为了节约CPU的时间,一个线程可以创建和撤销另一个线程,同一进程内的多个线程之间可以并发执行,线程也是CPU调度的一个基本单位,线程只有3个基本状态:就绪、执行、阻塞

进程是线程的容器,线程不能单独执行,必须组成进程,一个程序至少有一个进程,一个进程至少有一个线程,进程拥有一个完整的虚拟地址空间,不依赖于线程而独立存在,反之,线程只是进程的一部分,没有自己的地址空间,与进程内的其它线程共享分配给该进程的所有资源,线程可以有效的提高系统的执行效率,但并不是在所有计算机系统中都适用,如某些很少做进程调度和切换的实时系统,使用线程的好处是有多个任务需要处理机处理时,减少处理机的切换时间,而且,线程的创建和结束所需要的系统开销也比进程的创建和结束要小得多,最适合使用线程的系统是多处理机系统和网络系统或分布式系统

进程和线程的主要差别在于它们是不同的操作系统资源管理方式,进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是进程中的不同执行路径,线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些,但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: