网站推广.NET

网站推广.NET

线程和进程的区别是什么

来源:互联网

线程与进程的区别如下:1、进程是资源分配的最小单位,线程是资源调度的最小单位;2、2、线程是在进程下运行的。一个进程可以包含多个线程;3、进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间。

一、区别

1、进程是资源分配的最小单位,线程是资源调度的最小单位。

2、线程是在进程下运行的。一个进程可以包含多个线程。

3、进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间。而线程是共享进程中的数据的,使用相同的地址空间。

4、同一进程下不同线程间数据容易共享,不同进程间数据很难共享。

5、线程之间没有单独的地址空间,一个线程死掉,整个进程也死掉。而一个进程死掉并不会对另外一个进程造成影响。

二、线程是什么

进程的颗粒度太大,每次的执行都要进行进程上下文的切换。如果我们把进程比喻为一个运行在电脑上的软件,那么一个软件的执行不可能是一条逻辑执行的,必定有多个分支和多个程序段,就好比要实现程序A,实际分成 a,b,c等多个块组合而成。那么这里具体的执行就可能变成:

程序A得到CPU =》CPU加载上下文,开始执行程序A的a小段,然后执行A的b小段,然后再执行A的c小段,最后CPU保存A的上下文。

这里a,b,c的执行是共享了A进程的上下文,CPU在执行的时候仅仅切换线程的上下文,而没有进行进程上下文切换的。进程的上下文切换的时间开销是远远大于线程上下文时间的开销。这样就让CPU的有效使用率得到提高。这里的a,b,c就是线程,也就是说线程是共享了进程的上下文环境,的更为细小的CPU时间段。线程主要共享的是进程的地址空间。

延伸阅读

什么是进程

进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。50万+团队都在用的项目协作工具一个工具满足团队所需:任务、项目、文档、IM、目标、 日历、甘特图、工时、审批以及更多,让工作更简单智能化研发管理工具PingCode 是简单易用的新一代研发管理平台,让研发管理自动化、数据化、智能化,帮助企业提升研发效能
线程和进程的区别