Java多執行緒(一) 什麼是執行緒
阿新 • • 發佈:2018-12-02
宣告:本系列大多是翻譯自https://www.javatpoint.com,加上自己的增刪改,盡力寫的系統而通俗易懂,後文不再重複宣告。
java的多執行緒是一個同時執行多個執行緒的過程。
執行緒是一個輕量級的子程序,是最小的處理單元。多執行緒和多程序都用於實現多工處理。
但是,我們使用多執行緒而不是多程序,因為執行緒使用共享記憶體區域,它們不分配單獨的記憶體區域以節省記憶體,而且執行緒之間上下文切換比程序花費的時間更少。
用一個東西之前,總得了解一下它的優點,這樣才有動力看下去,這裡我們先看一下多執行緒的優點。
Java多執行緒的優點
- 它不會阻塞使用者,因為執行緒是獨立的,你可以同時執行多個操作,舉個栗子,你需要一個延時,等待三秒鐘再進行接下來的操作,如果你使用單執行緒,它就真的等了你三秒,這三秒,啥都不幹,啥都得放一邊,就等。。。這明顯是不可接受的。
- 你可以同時執行多個操作,節省時間。這裡面又牽扯到CPU密集型和IO密集型的問題,可以看這篇文章:關於多執行緒的CPU密集型和IO密集型這件事
- 執行緒是獨立的,死掉一個,不影響另一個。
多工處理
多工處理是同時執行多個任務的過程,我們使用多工處理來儘可能增大CPU的利用率。多工處理可以通過兩種方式實現,沒錯,多執行緒和多程序。
1.多程序
- 每個程序在記憶體中有一個地址,分配一個單獨的記憶體區域
- 程序是重量級的
- 通訊成本比較高
- 切換程序需要一些時間來儲存和載入暫存器,記憶體對映等
2.多執行緒
- 執行緒共享相同的地址空間
- 輕量級
- 通訊成本比較低
什麼是JAVA中的執行緒
執行緒是一個輕量級的子程序,是最小的處理單元。如下圖:
一個系統下可以有多個程序,一個程序中又有多個執行緒。
JAVA Thread類
Java提供了Thread類來實現執行緒程式設計,至於怎麼做,且看下文。