【JUC】2-一把“鎖”兩個“並”三個“程”(JAVA多執行緒相關概念)

不会java的菜鸟程序员發表於2024-06-02

1、一把鎖 (synchronized)

2、兩個並(併發 並行)

併發是在同一實體上的多個事件,是在一臺處理器上同時處理多個任務,同一時刻,其實是隻有一個時間在發生

並行是在不同實體上的多個事件,是在多臺處理器上同時處理多個任務,同一時刻,大家真的都在做事情,互不影響

3、三個程(程序 執行緒 管程)

程序

簡單的說,在系統中執行中的一個應用程式就是一個程序,每一個程序都有它自己的記憶體空間和系統資源

執行緒

也被稱為輕量級程序,在同一個程序內會有1個或多個執行緒,是大多數作業系統進行時序排程的基本單元

管程

Monitor物件,也就是我們平時說的鎖。

Monitor其實是一種同步機制,它的義務是保證(同一時間)只有一個執行緒可以訪問被保護的資料和程式碼。

JVM中同步是基於進入和退出監視器物件來實現的,每個物件例項都會有一個Monitor物件

Monitor物件會和Java物件一同建立和銷燬,它底層是由C++語言來實現的

執行執行緒就要求先成功持有管程,然後才能執行方法,最後當方法完成(無論是否正常完成)時釋放管程。在方法執行期間,執行執行緒持有了管程,其他任何執行緒都無法再獲取到同一個管程。

相關文章