this關鍵字理解

2021-08-23 14:27:04 字數 494 閱讀 5241

**:

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 工作記憶體 又共享同一主記憶體。舉例 當程式在執行過程中,會將運算需要的...