2021年4月18日 星期日

.NET System.Threading - 說明範例 2

System.Threading 裡面提供了很多用來控制執行緒的工具

層次比較高,用起來效率高很多

來一個一個介紹起

走起~~


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 (很特殊的情況)

(待補充)

沒有留言:

張貼留言