切换线程对cpu资源的浪费

在切换进程的时候,通常会更加浪费资源 ,但是在线程的切换的时候资源损耗其实不大
但是如果是单个cpu的情况下,同一时间只能进行一个进程,如果想实现多任务的话,就只能每个进程或线程获得一个时间片,在某个时间片内,只能一个线程执行,然后按照某种策略换成其他线程执行。

我的理解是:

就单cpu来说的话,因为只有一个进程,不存在进程之间的切换,所以都是线程的切换。 对资源的消耗相差不多 ,没有比较的意义
对多cpu来说,进程切换非常损耗cpu资源。但是如果是多线程运行,确实会提高持续的执行速度,因为每个cpu都可以并发执行任务 。但是单线程 和多线程 同样做一件事情,把这个事情单独拎出来比较的话,多线程是不划算的。

举例:

烤饼,一个大盘子上(进程),烤一个饼(线程),我们把烤熟一个饼称为线程完成。
单线程:如果一个盘子只烤一个饼,相对来说,这个饼能够吸收的热量(资源)是比较多的,假设 5 分钟可以烤熟
多线程:一个盘子烤多个饼,相对来说,热量会被每一个饼给抢占(资源总额有限),每一个饼得到的热量没有烤一个饼的时候得到的多,那么这时候烤熟一个饼可能需要 6 分钟,所以单独把烤一个饼这件事拿出来说,多线程消耗了更多的资源。但是这其实并不是我们在乎的,因为多线程一次可以烤很多个饼。6分钟我们可能得到的是5个饼。这就是多线程的优势

所以如果拿整个进程来比较的话,多线程为我们节省了时间


在这里插入图片描述
之所以android 中ui线程是单线程,因为ui线程需要吧事情一件件做完才能接着往下走,如果把一件事情分配个多个线程,需要处理线程之间的通信,数据等操作,会使得操作更加复杂。所以选择用单线程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值