1,使用std::atomic定義,可以變數在進行簡單的運算中保持原子性!
std::atomic_int a;
std::atomica;
2,使用臨界區mutex,可以對一段**加鎖
std::mutex m_mutex;
m_mutex.lock()
m_mutex.unlock()
問題:如果出現異常,可能沒有進行解鎖;加鎖解鎖複雜。
3,自定義鎖
class lock
~lock()
private:
std::mutex& mutex;
};/*使用*/
void addcount()
在結束祈構時自動解鎖
同3問題:需要對同乙個mutex加鎖;在對同乙個物件操作時,可以在該物件中新增乙個mutex物件。對於多個物件,則出現問題。
4,c++自帶,在函式開頭使用
std::lock_guardlock(m_mutex)
5,多物件操作,如果自己編寫的話,主要是保持加鎖的順序一致,比如利用位址進行加鎖排序。
void addcount(a,b)
}
JAVA多執行緒的簡單方法應用
通過繼承thread實現多執行緒 用法 firstthread類繼承thread類 繼承乙個thread類 class firstthread extends thread test類測試結果 public class test 通過實現runnable介面實現多執行緒 用法 mrunnable類實...
python unittest簡單方法
下面一步步的展示如何使用unittest來測試。1 匯入unitttest模組 import unittest2 定義乙個被測試函式 def add a,b return a b3 建立乙個unittest.testcase子類 class demotest unittest.testcase pa...
C 讀取XML檔案的簡單方法
一 xml只有乙個table的情況 1 userinfo.xml 2 讀取資料 dataset ds new dataset ds.readxml userinfo.xml datagridview1.datasource ds.tables user 二 xml有多個table的情況 1 user...