天天看點

程式、程序、線程 的概念 和多線程的記憶體JVM

一、概念

1、程式(program)是為完成特定任務、用某種語言編寫的一組指令的集合。即指一段靜态的代碼,靜态對象。

2、程序(process)是程式的一次執行過程,或是正在運作的一個程式。是一個動态的過程:有它自身的産生、存在和消亡的過程。——生命周期

     如:運作中的QQ,運作中的MP3播放器

     程式是靜态的,程序是動态的

程序作為資源配置設定的機關,系統在運作時會為每個程序配置設定不同的記憶體區域

3、線程(thread),程序可進一步細化為線程,是一個程式内部的一條執行路徑。

      若一個程序同一時間并行執行多個線程,就是支援多線程的

線程作為排程和執行的機關,每個線程擁有獨立的運作棧和程式計數器(pc),線程切換的開銷小。

     一個程序中的多個線程共享相同的記憶體單元/記憶體位址空間---》它們從同一堆中配置設定對象,可以通路相同的變量和對象。這就使得線程間通信更簡便、高效。但多個線程操作共享的系統資源可能就會帶來安全的隐患。

二、多線程JVM

程式、程式、線程 的概念 和多線程的記憶體JVM

每個線程,擁有自己獨立的:棧(虛拟機棧VM Stack)、程式計數器(PC)

多個線程,共享同一個程序中的結構:方法區(Method Area)、堆(Heap)。

繼續閱讀