**:
public class test implements runnable
synchronized void m1() throws interruptedexception
synchronized void m2() throws interruptedexception
@override
public void run() catch (exception e) }}
對於run方法的呼叫m1(),其實是this.m1(),那this怎麼理解:
this用於函式中,代表該函式所在類的當前物件,this所在的函式是run,run對應的類是test,執行緒要執行run,實際就是要di 呼叫task的run,所以是task,從位元組碼和執行緒的角度理解如下圖:
C virtual關鍵字理解
在c 語言中,從 到程式的執行,要經歷編譯和連線,針對這兩個不同的階段,c 設計了不同的機制,其中vitual和inline就是區分編譯器工作和鏈結器工作的標誌 inline很容易理解,生命為inline的函式在編譯階段即被展開成 而非inline的函式採用執行時鏈結的方式處理 vitual關鍵字,...
C virtual關鍵字理解
在c 語言中,從 到程式的執行,要經歷編譯和連線,針對這兩個不同的階段,c 設計了不同的機制,其中vitual和inline就是區分編譯器工作和鏈結器工作的標誌 inline很容易理解,生命為inline的函式在編譯階段即被展開成 而非inline的函式採用執行時鏈結的方式處理 vitual關鍵字,...
Volatile關鍵字理解
物理角度 由於計算機的儲存裝置和cpu的運算速度有幾個數量級的差距,所以現代計算機系統加入一層速度接近 cpu的快取記憶體 cache 但cache帶來乙個問題 快取一致性問題 在多處理器系統中,每個處理器機油自己的cache 工作記憶體 又共享同一主記憶體。舉例 當程式在執行過程中,會將運算需要的...