Java多線程(二)關於多線程的CPU密集型和IO密集型這件事


點我跳過黑哥的卑鄙廣告行為,進入正文。

 

Java多線程系列更新中~

  正式篇:

  1. Java多線程(一) 什么是線程
  2. Java多線程(二)關於多線程的CPU密集型和IO密集型這件事
  3. Java多線程(三)如何創建線程
  4. Java多線程(四)java中的Sleep方法
  5. Java多線程(五)線程的生命周期

  番外篇(神TM番外篇):

  1. Java 過一下基礎
  2. 轉載:java中Thread.sleep()函數使用
  3. Java多線程 Socket使用

 

CPU密集型

CPU密集型會消耗掉大量的CPU資源,例如需要大量的計算,視頻渲染啊,仿真啊之類的。這個時候CPU就卯足了勁在運行,這個時候切換線程,反而浪費了切換的時間,效率不高。

就像你的大腦是CPU,你本來就在一本心思地寫作業,多線程這時候就是要你寫會作業,然后立刻敲一會代碼,然后在P個圖,然后在看個視頻,然后再切換回作業。emmmm,過程中你還需要切換(收起來作業,拿出電腦,打開VS…)那你的作業怕是要寫到掛科。。。這個時候不太適合使用多線程,你就該一門心思地寫作業~

IO密集型

涉及到網絡、磁盤IO的都是IO密集型,這個時候CPU利用率並不高,這個時候適合使用多線程。

同樣以你的大腦為例,IO密集型就是“不燒腦”的工作。例如你需要陪小姐姐或者小哥哥聊天,還需要下載一個VS,還需要看我(黑哥)的博客。這個時候如果使用多線程的話會怎么做?

咦?小哥哥(小姐姐)給你發消息了,回一下TA,然后呢?TA給你回消息肯定需要時間,這個時候你就可以搜索VS的網站,先下安裝包,然后一看,哎呦,TA還沒給你回消息,然后看會你黑哥的博客。小哥哥(小姐姐)終於回你了,你回一下TA,接着看我的博客,這就是類似於IO密集型。你可以在不同的“不燒腦”的工作之間切換,來達到更高的效率。而不是小姐姐不回我的信息,我就干等,啥都不干,就等,這個效率可想而知,也許,小姐姐(小哥哥)根本就不會回復你~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM