執行緒簡介
-
多任務
多任務之例1:

多任務之例2:

多任務之例3:

現實生活中太多這樣同時做多件事情的例子了,看起來是多個任務都在做,其實本質上我們的大腦在同一時間依舊只做了一件事情,只是在不同的事情上這個時間交替的很快,我們就覺得幾件事情是同時做的,例如程式員多任務狀態圖:

-
多執行緒

-
普通方法呼叫和多執行緒

-
程式 · 行程 · 執行緒

-
Process 與 Thread
-
說起行程,就不得不說下程式,程式是指令和資料的有序集合,其本身沒有任何運行的含義,是一個靜態的概念,
-
而行程則是執行程式的一次執行程序,它是一個動態的概念,是系統資源分配的單位,
-
通常在一個行程中可以包含若干個執行緒,當然一個行程中至少有一個執行緒,不然沒有存在的意義,執行緒是 CPU 調度和執行的單位,
注意:
很多多執行緒是模擬出來的,真正的多執行緒是指有多個 cpu,即多核,如服務器,如果是模擬出來的多執行緒,即在一個 cpu 的情況下,在同一個時間點,cpu 只能執行一個代碼,因為切換的很快,所以就有同時執行的錯局,
-
本章核心概念
-
執行緒就是獨立的執行路徑;
-
在程式運行時,即使沒有自己創建執行緒,后臺也會有多個執行緒,如主執行緒,gc 執行緒;
-
main() 稱之為主執行緒,為系統的入口,用于執行整個程式;
-
在一個行程中,如果開辟了多個執行緒,執行緒的運行由調度器安排調度,調度器是與作業系統密切相關的,先后順序是不能人為的干預的;
-
對同一份資源操作時,會存在資源搶奪的問題,需要加入并發控制;
-
執行緒會帶來額外的開銷,如 cpu 調度時間,并發控制開銷;
-
每個執行緒在自己的作業記憶體互動,記憶體控制不當會造成資料不一致
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/203889.html
標籤:Java
