点我跳过黑哥的卑鄙广告行为,进入正文。
Java多线程系列更新中~
正式篇:
- Java多线程(一) 什么是线程
- Java多线程(二)关于多线程的CPU密集型和IO密集型这件事
- Java多线程(三)如何创建线程
- Java多线程(四)java中的Sleep方法
- Java多线程(五)线程的生命周期
番外篇(神TM番外篇):
CPU密集型
CPU密集型会消耗掉大量的CPU资源,例如需要大量的计算,视频渲染啊,仿真啊之类的。这个时候CPU就卯足了劲在运行,这个时候切换线程,反而浪费了切换的时间,效率不高。
就像你的大脑是CPU,你本来就在一本心思地写作业,多线程这时候就是要你写会作业,然后立刻敲一会代码,然后在P个图,然后在看个视频,然后再切换回作业。emmmm,过程中你还需要切换(收起来作业,拿出电脑,打开VS…)那你的作业怕是要写到挂科。。。这个时候不太适合使用多线程,你就该一门心思地写作业~
IO密集型
涉及到网络、磁盘IO的都是IO密集型,这个时候CPU利用率并不高,这个时候适合使用多线程。
同样以你的大脑为例,IO密集型就是“不烧脑”的工作。例如你需要陪小姐姐或者小哥哥聊天,还需要下载一个VS,还需要看我(黑哥)的博客。这个时候如果使用多线程的话会怎么做?
咦?小哥哥(小姐姐)给你发消息了,回一下TA,然后呢?TA给你回消息肯定需要时间,这个时候你就可以搜索VS的网站,先下安装包,然后一看,哎呦,TA还没给你回消息,然后看会你黑哥的博客。小哥哥(小姐姐)终于回你了,你回一下TA,接着看我的博客,这就是类似于IO密集型。你可以在不同的“不烧脑”的工作之间切换,来达到更高的效率。而不是小姐姐不回我的信息,我就干等,啥都不干,就等,这个效率可想而知,也许,小姐姐(小哥哥)根本就不会回复你~