Udemy Course Multithreading, Concurrency & Performance 17
在正式環境運行時,時常需要針對特定邏輯做持續時間的平均計算
大略邏輯如下:
以下將依步驟製作簡單的Metrics範例,首先完成以下
在理解以上邏輯後,需特別注意紅框部分
在Mult-Thread情況,很多Thread都會同時進到紅框的計算,會打亂計算
所以要特別加上synchronized,並且average因為是double
同前一節介紹也要加上volatile避免複數thread進到average的計算
接著在別處建立商業邏輯BusinessLogic的class並注入Metrics class
在來製作另一個class專門依間隔時間印出當前的Metrics物件的average數值
從旁觀察經過BusinessLogic循環運算後average數值的變化
最後在寫個main,並建立兩個BusinessLogic物件模擬兩個Threads做邏輯處理
及一個MetricsPrinter物件來計算回應是否快速
實際運行:
運行過程會看到類似如下數值一直跳出:
上面顯示的也就是蒐集到的Atomic邏輯運算平均的時間Metrics
可以當作邏輯處理上Performance的參考依據
上述完整Code如下: