windows核心機制簡單理解

來源:互聯網
上載者:User

windows核心對象,其實說白了就是:

windows核心處理任何事件能夠有條不紊地進行,是怎麼安排和啟動並執行內部機制(其中包含事件機制,互斥鎖機制和訊號量機制,等待機制)。

"汽車場有車位,汽車過來停車"的例子來形象解釋關於windows核心對象的含義,

 

1.Event
      N(無窮)車N(無窮)車位。對於人工重設event,就像有無窮車位的停車場。停車場一開放(SetEvent),所有等待(WaitForSingleObject)的汽車(等待線程)都可以進去停車。停車場一關閉(ResetEvent),所有的汽車(線程)都進不去。

      N(無窮)車1車位。對於自動重設event,就是只有一個車位的停車場。停車場一開放(SetEvent),只有一輛汽車(線程)進去停車。當有汽車進去停車時,因為只有一個車位已滿,停車場自動關閉,這樣其它汽車必須繼續等待。等該汽車開走,必須要重新開放停車場(SetEvent),這樣才能讓其它車進來;否則的話所有的車還必須等著。

 

2. Mutex
      N(無窮)車1車位。

      可以看作是自動重設Event,雖然實現原理可能不一樣。既然是其中情況之一,那麼使用起來也更簡單。

      一輛車搶佔車位,其它車都要等待。該車開走,必須調用ReleaseMutex釋放車位,供別的車進入。

      相比於Event來說,mutex可以看做是一個永久開放的停車場(也就是不再設定開關)。所有的車公平競爭,先到先停;但是同時最多隻可能有一輛汽車佔位。

 

3. Semaphore
      N(無窮)車M(有限)車位。一定要搞清楚我們重點關心的是當前已經停車的車位元,還是剩下可用的車位元。

      當有一輛車來時,想申請一個車位(ReleaseSemaphore);如果有剩餘車位,將成功申請,並可返回當前已經用去的車位。此時已經用去的車位將加1。

      但是如果剩餘的車位為0,也就是說因為車位已停滿,那麼申請將失敗,停車場也關閉,剩下的都將等待。

      如果要騰出一個車位,必須移走一輛車,此時要求必須有車停著才能移走(WaitForSingleObject);移走一輛車後剩餘的車位將多1個,佔據的車位將會少一個。

       這個核心對象設計的非常糟糕,概念非常模糊和對立,取名也非常含糊。例如:WaitForSingleObject是減,但是它的判斷條件是已停車車位是否存在;而ReleaseSemaphore卻是增,不過判斷條件卻是剩餘空車位是否存在。

        此外,從字面意思看,ReleaseSemaphore絕對是減,但是乾的卻是增的事。

       總之來說,核心對象,其他的非常容易理解,就這個如果深究下去就會讓人崩潰4. WaitForSingleObject
等待。條件滿足才能繼續運行線程。

 

4. WaitForSingleObject
        等待。條件滿足才能繼續運行線程。

       •Event成立的條件是好運來了,停車場開放,並且有空車位;
        •Mutex成立的條件是,有空車位(停車場永遠開放的);
        •Semaphore成立的條件是,有車停著;


5. 適用場合
         •Event用於條件通知;
         •Mutex用於互斥競爭;
         •Semaphore用於讀寫個數限制。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.