进程和线程的区别与联系

        想要了解进程和线程之间的联系与区别,首先我们要先理解什么事线程。遇事不决找百度,我们来看看百度百科的解释:

        进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器

        正如引文所说,进程是资源分配的基本单位。 既然进程是用来分配资源的,那么谁又来执行任务呢?相比读者朋友们已经可以猜到了,就是线程。事实上,线程是调度执行的基本单位。而进程包含了线程。我们可以假设进程是一个工厂,而线程就是工人。为了完成某个任务,工厂负责人需要首先申请一个空间来建造工厂,配备各种设施,接着就是雇佣工人来完成具体的任务。对比来说就是进程申请内存和地址,然后在进程内分布着一个或者多个线程,线程负责执行任务。

        现在我们已经理解了进程和线程的一些基本的联系。那么我们再提出一个问题:为什么既要有进程又要有线程呢?    

        在这里我们要注意到的是,进程向CPU申请内存时是会产生极大的调遣时间的,倘若每一个任务的每一个细节都要利用进程来执行,系统的效率将会被极大地降低。而这时我们将进程和线程分工一下,进程就是专门负责进行资源的申请和分配,同一个进程中的线程共享进程所申请的资源,把任务细分给每一个线程来执行。这时候进程中有什么新的任务,就可以直接再生成一个线程来解决,而不必再向CPU申请资源。此时系统的效率就会提高。

        在最后,我们来进行一个简单的总结或者是摘要:

  1. 进程包含线程,一个进程可以有一个线程,也可以有多个线程。
  2. 进程和线程都是用来实现并发编程场景的,但是线程比进程要轻量、更高效。
  3. 同一个进程的线程之间,共用一份资源(内存和硬盘)。省去了申请资源的开销。
  4. 进程和线程之间是具有独立性的,一个进程挂了是不会影响其他的进程的。而进程和其内部的线程是会相互影响的。
  5. 进程是资源分配的基本单位;线程是调度执行的基本单位。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值