一、概念
1、程式(program)是為完成特定任務、用某種語言編寫的一組指令的集合。即指一段靜态的代碼,靜态對象。
2、程序(process)是程式的一次執行過程,或是正在運作的一個程式。是一個動态的過程:有它自身的産生、存在和消亡的過程。——生命周期
如:運作中的QQ,運作中的MP3播放器
程式是靜态的,程序是動态的
程序作為資源配置設定的機關,系統在運作時會為每個程序配置設定不同的記憶體區域
3、線程(thread),程序可進一步細化為線程,是一個程式内部的一條執行路徑。
若一個程序同一時間并行執行多個線程,就是支援多線程的
線程作為排程和執行的機關,每個線程擁有獨立的運作棧和程式計數器(pc),線程切換的開銷小。
一個程序中的多個線程共享相同的記憶體單元/記憶體位址空間---》它們從同一堆中配置設定對象,可以通路相同的變量和對象。這就使得線程間通信更簡便、高效。但多個線程操作共享的系統資源可能就會帶來安全的隐患。
二、多線程JVM
每個線程,擁有自己獨立的:棧(虛拟機棧VM Stack)、程式計數器(PC)
多個線程,共享同一個程序中的結構:方法區(Method Area)、堆(Heap)。