1. 程式人生 > 其它 >javaSE.多執行緒

javaSE.多執行緒

執行緒簡介

程式:是指令和資料的有序集合,其本身沒有任何執行的含義,是一個靜態的概念;
程序:執行程式的一次執行過程,是一個動態的概念,是系統資源分配的單位;
執行緒:在一個程序中可以包含若干個執行緒,一個程序至少有一個執行緒,執行緒是cpu排程和執行的單位;

【注意】很多多執行緒是模擬出來的,真正的多執行緒是指有多個CPU,即多核,如伺服器。如果是模擬出來的多執行緒,即在一個cpu的情況下,在同一個時間點,cpu只能執行一個程式碼,因為切換得很快,所以就有同時執行的錯覺。

  • 執行緒就是獨立的執行路徑;
  • 程式執行時,即使沒有自己建立執行緒,後臺也會有多個執行緒,如主執行緒、gc執行緒;
  • main()稱為主執行緒,為系統的入口,用於執行整個程式;
  • 在一個程序中,如果開闢了多個執行緒,執行緒的執行由排程器安排排程,排程器是與作業系統緊密相關的,先後順序是不能人為干預的;
  • 對同一份資源操作時,會存在資源搶奪的問題,需要加入併發控制;
  • 執行緒會帶來額外的開銷,如CPU排程時間,併發控制開銷;
  • 每個執行緒在自己的工作記憶體互動,記憶體控制不當會造成資料不一致;

執行緒建立(重點)

三種建立方式
1.繼承Thread類(重點)
自定義執行緒類繼承Thread類;
重寫run()方法,編寫執行緒執行體;
建立執行緒物件,呼叫start()方法啟動執行緒;
【注意】執行緒開啟,不一定立即執行,由cpu排程



2.實現Runnable介面(重點)
3.實現callable介面(瞭解)

### 執行緒狀態

### 執行緒同步(重點)

### 執行緒通訊

### 執行緒池