5天不再懼怕多執行緒 第三天 互斥體

2021-09-09 05:12:18 字數 2615 閱讀 9152

沒想到我的前兩篇文章還挺受歡迎的,謝謝大家,今天整理下mutex的使用。

一:mutex

首先看下msdn對它的解釋:

不錯,出現了乙個亮點,可用於「程序間同步「,既然程序間都可以同步,那執行緒同步對它來說不是小菜一碟嗎?好的,還是看下mutex在

執行緒中發揮的神奇功效。

1: 執行緒間同步

metux中提供了watione和releasemutex來確保只有乙個執行緒來訪問共享資源,是不是跟monitor很類似,下面我還是舉個簡單的例子,

注意我並沒有給metux取名字。

2:程序間同步

這次我給mutex取個名字叫cnblogs,把console程式copy乙份,然後看看真的能夠實現程序同步嗎?

3:  小結

同步,monitor也幹不了,所以mutex是首選。

二:interlocked

同樣先向msdn討個說法,看看如何解釋。

」原子操作」是個亮點,我們知道「原子」是不可再分的,深一點的意思就是說站在程式設計師的角度來看是不需要手工干預的,也就是所謂的「無鎖程式設計」。

實際應用中有時候我們可能只是對共享變數進行一些簡單的操作,比如說「自增,自減,求和,賦值,比較"。

1:increment

看看是不是達到了不可再分的自增效果,蠻有意思。

這個就不用舉例子了。

3:add

發現msdn解釋的還是蠻詳細的。

這個就是所謂的原子性賦值操作

所謂的比較操作,還是看看經典的msdn的說法

如果相等,返回第二個引數值:

static

void main(string args)

如果不相等,則返回原始值:

1

static

void main(string args)

2

複習第三天 多執行緒

並行 兩個或者兩個以上的事件,同一時刻發生 併發 兩個或者兩個以上的事件,同一時間段發生 程序 進入到記憶體中的乙個程式,好比開啟乙個360安全衛士 執行緒 是程序的乙個執行單位,負責當前程序中程式的執行,乙個程序至少有乙個執行緒,乙個程序可以有多個執行緒。public class run exte...

5天不再懼怕多執行緒 第一天 嘗試Thread

原本準備在mongodb之後寫乙個lucene.net系列,不過這幾天用到多執行緒時才發現自己對多執行緒的了解少之又少,僅僅停留在lock上面,好了,我們知道 負載 是乙個很時尚,很牛x的玩意,往大處說,需要負載,資料庫需要負載。往小處說,執行緒也需要負載,面對海量的 使用者請求,我們的單執行緒肯定...

5天不再懼怕多執行緒 第一天 嘗試Thread

5天不再懼怕多執行緒 第一天 嘗試thread 原本準備在mongodb之後寫乙個lucene.net系列,不過這幾天用到多執行緒時才發現自己對多執行緒的了解少之又少,僅僅停留在lock上面,好了,我們知道 負載 是乙個很時尚,很牛x的玩意,往大處說,需要負載,資料庫需要負載。往小處說,執行緒也需要...