java線程的相關概念

目錄

# 併發與並行

image
- 併發指的是程序的結構,而後者值得是程序運行時的狀態
- 併發是指一個處理器同時處理多個任務;並行是指多個處理器或者是多核的處理器同時處理多個不同的任務。
- 併發是讓多個任務在邏輯上交織執行的程序設計;並行是在物理上一起執行。
- 併發:時間片內有很多的線程以以及進程在執行,但任何一個時間點只有一個在執行;多個線程競爭一個資源; 並行是時間片與時間點都有多個線程或者進程在執行
- 單個CPU只能做到併發,多核CPU纔可以做到並行。

# 線程與進程

進程是操作系統進行資源分配與調度的一個獨立單元,是應用程序運行的載體
線程是程序執行流的最小單位,是處理器調度以及分派的基本單位
進程由多個線程組成;線程是一個進程中代碼的不同執行路線;進程之間互相獨立,同一個進程中的線程之間共享程序的內容以及進程級別的資源。

#線程狀態

image

#JAVA內存

JVM基本結構圖:

image

java內部模型:
image

#線程安全

線程安全問題 VS 資源共享問題
線程安全產生的根本原因是共享數據存在被併發修改的可能,即一個線程讀取時,允許另一個線程修改。

如果有兩以上的線程同時訪問同一個共享資源,可能造成線程衝突,線程衝突會造成數據丟失、重複等嚴重問題。

發佈了32 篇原創文章 · 獲贊 26 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章