一、介绍线程和进程
什么是线程
是程序执行的最小单位,一个进程在执行过程中产生建多个线程,同一进程中的[多个]线程共享同一块内存空间及系统资源,线程数进程的一部分,因此线程数也被称为轻量级进程
什么是进程
是资源分配的最小单位,进程有独立的地址空间 ,进程是程序执行时的一个实例
需要注意:一个程序可以同时对应多个进程,通过多个进程来实现一个进程。 使用fork函数创建多个子进程,但其实每个程序都对应独立的程序,而fork函数得到的子进程是父进程的一个复制品,它从父进程处继承了整个进程的地址空间
二、区别
根本区别:线程是CPU进行资源调度和分配的基本单位,而进程是操作系统进行资源调度和分配的基本单位
从资源开销上讲:线程与线程之间是共享代码和内存空间的,每个线程都有自己独立的运行栈和程序计数器,线程之间的开销小,而每个进程都有自己的内存空间,进程之间切换性能开销比较大。
从包含关系上讲:一个进程可以有多个线程,线程是进程的一部分。
从内存分配上讲:同一进程中的线程共享本进程的地址空间和资源,而进程之间的地址空间和资源是相互独立的。
从影响关系上讲:一个线程崩溃会导致整个进程都会挂掉,而一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是所以多进程程序相对多线程要更加健壮,
从执行过程上讲:进程可以独立执行,但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制,两者均可并发执行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)