Udemy Course Multithreading, Concurrency & Performance 20
在Multi-Thread情境下,要鎖住邏輯大略有兩種方式
考量到以下的邏輯運算
可以選擇兩種鎖的策略,亦即將鎖鎖在:
Coarse-Grained Locking範例:
考量以下邏輯
上面宣告兩個物件,並且是由不同Method在運算,兩個Method毫不相干
但是在這兩個Method加入Synchronized修飾字卻會造成以下結果
上述Coarse-Grained Locking策略其實沒有邏輯運算上的問題
只是就有些浪費運算的resource,並且沒有多工,邏輯運算時間拉更長
接著另一種就是Fine-Grained Locking範例如下
上述Fine-Grained Locking效率更佳
因為不同Thread在不同Method內互鎖對方僅在更小的範圍
大多時候不同Thread在兩個Method中邏輯處理是併行的
只有那更小範圍的部分要排隊