lock 初步學習

2021-09-01 00:22:53 字數 875 閱讀 9924

1、給lock傳遞引數時首先要避免使用public物件,因為有可能外部程式也在對這個物件加鎖

2、避免一下三種鎖定

3、使用lock的時候,被lock的物件(locker)一定要是引用型別的,如果是值型別,將導致每次lock的時候都會將該物件裝箱為乙個新的引用物件(事實上如果使用值型別,c#編譯器(3.5.30729.1)在編譯時就會給出乙個錯誤)

4、鎖定的不僅僅是lock段裡的**,鎖本身也是執行緒安全的

5、初步使用

using system;

using system.threading.tasks;

public class account

public decimal debit(decimal amount)

");console.writeline($"amount to remove     :");

balance = balance - amount;

console.writeline($"balance after debit  :");

return amount;

}else}}

public void credit(decimal amount)

");console.writeline($"amount to add        :");

balance = balance + amount;

console.writeline($"balance after credit :");}}

}class accounttest

task.waitall(tasks);

}static void randomlyupdate(account account)

else}}

}

spring學習初步

package cn.bupt.duming.service public inte ce greetingservice 儘管看起來,在此處沒必要隱藏介面,但是我們還是建議將實現與介面分離。public class greetingserviceimpl implements greetingse...

perl 學習初步

前天開始學習perl語言,因為perl的應用實在是太廣泛了 第一步搭建環境,在linux下基本上都自帶了perl直譯器,很一般的目錄是 usr bin perl 也有是在 usr local bin perl的下面 只要通過在終端中輸入perl v就會顯示perl相關的版本資訊了,如果是5.0版本一...

std thread 學習初步

標準庫 c 0x 中的 thread 用起來似乎蠻簡單的。乙個 std thread 物件可以接收 作為引數。include include void test1 void test2 const qstring text class test3 void operator const class ...