Java多執行緒001——一圖讀懂執行緒與程式

Java貓說發表於2019-02-18

本部落格 貓叔的部落格,轉載請申明出處

前言

本系列將由淺入深,學習Java併發多執行緒。

一圖讀懂執行緒與程式

image

  • 1、一個程式可以包含一個或多個執行緒。(其實你經常聽到“多執行緒”,沒有聽過“多程式”嘛)
  • 2、程式存在方法區
  • 3、執行緒存在程式計數器
  • 4、堆佔最大記憶體,其為建立時分配的,是多執行緒共享的,主要存放new建立的物件
  • 5、方法區也是多執行緒共享的,主要存放類、常量、靜態變數
  • 6、CPU的基本執行單位是執行緒(注意!不是程式)
  • 7、由此,執行緒需要一個程式計數器記錄當前執行緒要執行的指令地址
  • 8、當CPU的時間片用完,讓出後記錄當前執行地址,下次繼續執行(時間片輪詢)
  • 9、只有執行Java程式碼時pc技數器記錄的才是下一條指令的地址,執行native方法,則記錄的是undefined地址
  • 10、執行緒中的棧,只要儲存執行緒區域性變數、呼叫棧幀

棧幀:C語言中,每個棧幀對應著一個未執行完的函式。棧幀中儲存了該函式的返回地址和區域性變數。

公眾號:Java貓說

現架構設計(碼農)兼創業技術顧問,不羈平庸,熱愛開源,雜談程式人生與不定期乾貨。

Image Text

相關文章