C 11多執行緒訪問時候的資料保護例項

2022-07-29 05:48:12 字數 841 閱讀 1078

1 #include2 #include3 #include

4 #include5 #include6 #include7 #include8

using

namespace

std;910

//用成員函式作為執行緒函式的方法寫執行緒

11//

std::cout 是共享物件(輸出流),應該確保它不受多個執行緒的同時訪問;

12classa13

27}28bool

noempty_or_not()

2934

return

false;35

}36void

delete_first()

3740

41void

4245

46//

執行緒2:取出佇列中的首元素.

47void

outmsgrecvqueue()

4863

else

6467

}68 cout <<"

end!

"<7071

//應用程式

72ass)

7377

78private

:79 std::listwaitcommand;

80 std::listmsgrecvqueue;

81 std::mutex my_mutex; //

這個鎖專門用於系統對waitcommand和msgrecvqueue的互斥修改;

82};

8384

intmain()

85

C 11 多執行緒

新特性之描述 雖然 c 11 會在語言的定義上提供乙個記憶體模型以支援執行緒,但執行緒的使用主要將以 c 11 標準庫的方式呈現。c 11 標準庫會提供型別 thread std thread 若要執行乙個執行緒,可以建立乙個型別 thread 的實體,其初始引數為乙個函式物件,以及該函式物件所需要...

c 11 多執行緒

1.多執行緒的原理 同一時間內,cpu只能處理1條執行緒,只有1條執行緒在工作 執行 多執行緒併發 同時 執行,其實是cpu快速地在多條執行緒之間排程 切換 如果cpu排程執行緒的時間足夠快,就造成了多執行緒併發執行的假象。思考 如果執行緒非常非常多,會發生什麼情況?cpu會在n多執行緒之間排程,c...

C 11 多執行緒

2011 年 c 迎來重大的改革 語言層面上承認了 多執行緒 程式的存在 加入了 thread 多執行緒支援庫,內容豐富 功能強大。首先從我個人理解角度粗鄙的理解一下多執行緒。多執行緒眾所周知 切割時間片的多程式併發執行,大多數的計算機都支援多執行緒併發的硬體支援。這可能是最簡單的多執行緒程式了。多...