原创 Java定時任務Timer調度器【三】 注意事項(任務精確性與內存泄漏) 原

一、任務精確性 通過前兩節的分析,大概知道了Timer的運行原理,下面說說使用Timer需要注意的一些事項。下面是Timer簡單原理圖 從上圖可以看到,真正運行鬧鐘的是一個單線程。也就是說隊列中的鬧鐘,只能依次進行串行化的操作,鬧鐘的定時

原创 Java定時任務Timer調度器【一】 源碼分析(圖文詳解版) 原

就以鬧鐘的例子開頭吧(後續小節皆以鬧鐘爲例,所有源代碼只列關鍵部分)。 public class ScheduleDemo { public static void main(String[] args) throws In

原创 計算機指令在CPU中的執行過程(圖文版) 原

爲了瞭解指令的大概流程,下面以加法指令做以說明(引用《計算機原理》)。 指令形式: ADD EA 該指令一個隱含的操作數存在累加器(AC)中,EA爲另一個操作數在主存當中的有效地址。 該指令是把AC和EA的數據相加,最後把計算的和送回A

原创 簡要總結計算機各種延時(寄存器、cache、內存、磁盤) 原

  Register寄存器 寄存器是中央處理器的組成部份,可用來暫存指令、數據和位址。通常有通用寄存器,如指令寄存器IR、程序計數器(PC)、累加器(ACC)、堆棧指針寄存器(SP)等,另外還有狀態寄存器(標記狀態Z、N、V、C)。寄存器最

原创 Java定時任務Timer調度器【二】 多線程源碼分析(圖文版) 原

  上一節通過一個小例子分析了Timer運行過程,牽涉的執行線程雖然只有兩個,但實際場景會比上面複雜一些。 首先通過一張簡單類圖(只列出簡單的依賴關係)看一下Timer暴露的接口。   爲了演示Timer所暴露的接口,下面舉一個極端的例子