Posted in技術探討
常見引發的 Memory Leaks 情境-以 .NET 為例
Posted in技術探討
初窺.NET C#中的 垃圾回收機制(二)
Posted in技術探討
C# Lock 概論
先簡單介紹一下Lock,如同大家在聽到多執行緒時常聽到的哲學家故事,今天一個圓桌上有多位哲學家,每個哲學家中間都擺著一支筷子,當個哲學家要吃飯,必須拿起哲學家左右兩邊的筷子吃飯,而其他兩旁的哲學家這時候只能負責思考,那如果兩旁的哲學家這時也想要吃飯,就會變成第一位哲學家拿起了右邊的筷子,第二位哲學家也拿起了右邊的筷子……,最後所有哲學家都拿起了一支右手的筷子,也全都在等別的筷子,而這樣就會造成死結(Deadlock),每個哲學家就像一個執行緒一樣,在互相搶資源(筷子),這時就要使用Lock,使得CPU避免正在執行的程式與其他執行中的程式互相干擾,講了這麼多我們來看看實際的範例,以下使用微軟lock 陳述式中所提供的範例做說明。
下方程式為模擬一個帳戶(Account)一直被扣隨機數目後,扣至零塊錢的情形。