層次比較高,用起來效率高很多
來一個一個介紹起
走起~~
1. CountdownEvent 跟 Interlocked (範例就放一起了)
CountdownEvent 用 AddCount 跟 Signal 來 增加跟減少計數,當計數歸零就可以通過
所以在用的時候,預設會放個1開始,避免連算第一次都沒有
Interlocked 則是用來處理一些非執行緒安全的計算
例如: i += 1
2. Monitor 跟 lock 陳述式
value += 1;
也可以用 lock(obj) { value += 1; }
來鎖定只有一個執行續通過
lock 其實 C# 的語法糖,下面兩個 IL code 是相同的
3. Mutex
把 Mutex 當作資源本身模擬下用餐的範例
4. Semaphore
(待補充)5. Barrier
(待補充)6. Timer
(待補充)7. CancellationToken & CancellationTokenSource
(待補充)8. Volatile (很特殊的情況)
(待補充)
沒有留言:
張貼留言