线程与进程

title: 线程与进程
copyright: true
tags:

  • 线程
  • 进程
    categories:
  • 计算机系统
    author: Qian Jipeng
    date: 2019-09-14 15:22:00

计算机系统中的进程与线程

参考这篇文章

写在前面

  • 进程和线程都是一个对cpu工作的时间段的描述
  • 进程是资源分配的最小单位,线程是cpu调度的最小单位
  • 进程是线程的爸爸(开玩笑的比喻)

要知道的知识

  • cpu的运算和执行速度很快、非常快,就连寄存器也只能勉强追上cpu的车尾灯,至于内存以及其他存储设备,是远远追不上cpu的处理速度的
  • 计算机很笨,cpu在同一时间段只能做一件事情,我们平时的一边码代码,一边开网易云音乐,其实是cpu不断在这两个客户端软件之间来回切换,只不过切换的速度太快了,以至于我们以为cpu是同时运行的
  • 计算机执行程序的过程,轮流执行,加载程序A的上下文,执行程序A,保存程序A的上下文;加载程序B的上下文,执行程序B,保存程序B的上下文;…

介绍

进程

进程是资源分配的最小单位,貌似有点抽象,就来打个比方吧。我们开了一个word,开了一个qq音乐和一个网易云音乐,那么我们的计算机中就有了三个进程(假使不存在其他的程序,假使),那么下图就是我们的cpu运行这三个程序的情况:

每个小方格都是一个cpu运行的时间片段,约100ms,cpu就是这样不断地在这些程序之间来回切换,由于时间间隔太短,所以造成了多个程序“并行运行”的假象。其实不然,这是早些年在单核cpu上出现的技术,所以说,当运行的程序过多,cpu负载越大,切换的时间也就越长,所以我们会感觉到明显的卡顿现象。于是乎,多核cpu出现了。

线程

可以说,线程是进程的儿子,一个进程可以拥有多个线程,这些线程会共享cpu为进程分配的资源,就好像多个儿子共享父亲的财产。

以qq为例,我们打开了qq,我们一边聊天,一边发图片,一边发文件,一边刷新qq消息,这些都是在我们的qq程序里面实现的,也就是说,我们做的这四个工作,都是在qq这个进程之下。

区别及联系

联系:

  • 一个线程只会属于一个进程,但一个进程至少会有一个线程
  • 资源分配给进程,这些资源会被它下面的线程共享
  • 线程在执行过程中,需要同步协作,不同进程的线程需要依靠消息通信来实现协作

区别:

  • 调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位
  • 并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行
  • 拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.
  • 系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值