Java多線程001——一圖讀懂線程與進程

本博客 貓叔的博客,轉載請申明出處

前言

本系列將由淺入深,學習Java併發多線程。

一圖讀懂線程與進程

image

  • 1、一個進程可以包含一個或多個線程。(其實你經常聽到“多線程”,沒有聽過“多進程”嘛)
  • 2、進程存在方法區
  • 3、線程存在程序計數器
  • 4、堆佔最大內存,其爲創建時分配的,是多線程共享的,主要存放new創建的對象
  • 5、方法區也是多線程共享的,主要存放類、常量、靜態變量
  • 6、CPU的基本執行單位是線程(注意!不是進程)
  • 7、由此,線程需要一個程序計數器記錄當前線程要執行的指令地址
  • 8、當CPU的時間片用完,讓出後記錄當前執行地址,下次繼續執行(時間片輪詢)
  • 9、只有執行Java代碼時pc技數器記錄的纔是下一條指令的地址,執行native方法,則記錄的是undefined地址
  • 10、線程中的棧,只要存儲線程局部變量、調用棧幀
棧幀:C語言中,每個棧幀對應着一個未運行完的函數。棧幀中保存了該函數的返回地址和局部變量。

公衆號:Java貓說

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

Image Text

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章