进程与线程的区别

#进程

所谓进程就是系统调用的基本单位,我们可以将他理解为我们电脑上执行的每一个程序其实就相当于一个进程.

 就上图所示,我们打开任务管理器里面的各种应用其实就相当与一个系统调用的一个进程。

#线程

线程与进程之间有着不可分割的联系,因为一个进程中包含着多个线程。如果说进程是系统资源调度的基本单位那么线程就是cpu调度执行的基本单位,进程的执行离不开线程执行的支持。举个例子,就好比我们使用QQ,它有许多的功能比如发消息,打视频,访问空间等等,而这些操作就是依赖着其内部不同的线程所执行的。

#线程与进程的一些区别

简单来说就是进程包含线程,进程是系统资源调用的基本单位,线程是cpu调度的基本单位。进程之间具有独立性(每个进程之间拥有各自的虚拟地址空间)同一个进程内的线程共享同一个虚拟地址空间。

#线程的一些好处

我们首先可以先想象一个场景,将进程类比为工厂,线程类比为工厂内的流水线。如果我们想提高生产效率并且节约资源我们是选择在一个工厂内增加流水线还是新开一个工厂呢?毫无疑问我们应该选择前者,即在一个进程中开辟多个线程而不是开辟多个进程。道理很简单,我们前面提到了,进程之间拥有各自的虚拟地址空间,而进程共享同一份虚拟地址空间,这就意味着我们开辟一个线程并不需要新开辟系统资源则其所消耗的资源是远远小于开辟一个进程的。就好比我们增加一条流水线并不需要在其他地方浪费土地而新开一个工厂所需要的土地是远远大于一条流水线的。

#线程的坏处

我们前面提到的线程的好处是基于其不需要重新开辟系统资源而节省时间所带来的好处,然而共享一处资源同时也就意味着线程的隔离性是很弱的,但出现多个线程抢占同一个任务时就会出现所谓的线程安全问题,且若一个线程崩坏则可能导致该进程内的所有线程的崩溃无法正常执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值