Java多線程(一) 什么是線程


聲明:本系列大多是翻譯自https://www.javatpoint.com,加上自己的增刪改,盡力寫的系統而通俗易懂,后文不再重復聲明。

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

 

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使用

 

Java的多線程是一個同時執行多個線程的過程。

線程是一個輕量級的子進程,是最小的處理單元。多線程和多進程都用於實現多任務處理。

但是,我們使用多線程而不是多進程,因為線程使用共享內存區域,它們不分配單獨的內存區域以節省內存,而且線程之間上下文切換比進程花費的時間更少。

用一個東西之前,總得了解一下它的優點,這樣才有動力看下去,這里我們先看一下多線程的優點。

Java多線程的優點

  1. 它不會阻塞用戶,因為線程是獨立的,你可以同時執行多個操作,舉個栗子,你需要一個延時,等待三秒鍾再進行接下來的操作,如果你使用單線程,它就真的等了你三秒,這三秒,啥都不干,啥都得放一邊,就等。。。這明顯是不可接受的。
  2. 你可以同時執行多個操作,節省時間。這里面又牽扯到CPU密集型和IO密集型的問題,可以看這篇文章:關於多線程的CPU密集型和IO密集型這件事
  3. 線程是獨立的,死掉一個,不影響另一個。

多任務處理

多任務處理是同時執行多個任務的過程,我們使用多任務處理來盡可能增大CPU的利用率。多任務處理可以通過兩種方式實現,沒錯,多線程和多進程。

  1.多進程

    • 每個進程在內存中有一個地址,分配一個單獨的內存區域
    • 進程是重量級的
    • 通信成本比較高
    • 切換進程需要一些時間來保存和加載寄存器,內存映射等

  2.多線程

    • 線程共享相同的地址空間
    • 輕量級
    • 通信成本比較低

什么是JAVA中的線程

 線程是一個輕量級的子進程,是最小的處理單元。如下圖:

  

  一個系統下可以有多個進程,一個進程中又有多個線程。

JAVA Thread類

Java提供了Thread類來實現線程編程,至於怎么做,且看下文。


免責聲明!

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



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