#include


 

多線程初級

 

 1 #include <iostream>
 2 #include <thread>
 3 #include <windows.h>
 4 #include <mutex>
 5 
 6 //兩個線程並行訪問一個變量
 7 
 8 int g_num = 20;//找到或者找不到的標識
 9 std::mutex g_mutex;
10 
11 void goA(int num)
12 {
13     g_mutex.lock();//你訪問的變量,在你訪問期間,別人訪問不了
14 
15     for (int i = 0; i < 15; i++)
16     {
17         Sleep(300);
18         g_num = 10;//修改全局變量
19         std::cout << "線程" << num << "   " << g_num << std::endl;
20     }
21 
22     g_mutex.unlock();//解鎖
23 }
24 
25 void goB(int num)
26 {
27     for (int i = 0; i < 15; i++)
28     {
29         Sleep(500);
30         g_num = 11;//修改全局變量
31         std::cout << "線程" << num << "   " << g_num << std::endl;
32     }
33 }
34 
35 void main()
36 {
37     std::thread t1(goA, 1);
38     std::thread t2(goB, 2);
39     t1.join();
40     t2.join();
41 
42     std::cin.get();
43 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM