1. 程式人生 > >Java多執行緒(一) 什麼是執行緒

Java多執行緒(一) 什麼是執行緒

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

java的多執行緒是一個同時執行多個執行緒的過程。

執行緒是一個輕量級的子程序,是最小的處理單元。多執行緒和多程序都用於實現多工處理。

但是,我們使用多執行緒而不是多程序,因為執行緒使用共享記憶體區域,它們不分配單獨的記憶體區域以節省記憶體,而且執行緒之間上下文切換比程序花費的時間更少。

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

Java多執行緒的優點

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

多工處理

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

  1.多程序

    • 每個程序在記憶體中有一個地址,分配一個單獨的記憶體區域
    • 程序是重量級的
    • 通訊成本比較高
    • 切換程序需要一些時間來儲存和載入暫存器,記憶體對映等

  2.多執行緒

    • 執行緒共享相同的地址空間
    • 輕量級
    • 通訊成本比較低

什麼是JAVA中的執行緒

 執行緒是一個輕量級的子程序,是最小的處理單元。如下圖:

  

  一個系統下可以有多個程序,一個程序中又有多個執行緒。

JAVA Thread類

Java提供了Thread類來實現執行緒程式設計,至於怎麼做,且看下文。