1 #include <iostream>
2 #include <thread>
3 #include <mutex>
4 #include <atomic>
5 using namespace std;
6
7 //全局变量会造成冲突,使得结果不正确
8 //mutex结果正确,速度慢
9 //atomic 结果正确,速度快
10
11
12 //线程安全,多线程访问不冲突
13 //int num = 0;
14
15 //原子变量
16 atomic_int num(0);
17
18 mutex m;//互斥
19
20 void run()
21 {
22 for (int i = 0; i < 100000; i++)
23 {
24 //m.lock();
25 num++;
26 //m.unlock();
27 }
28 }
29
30 void main()
31 {
32 clock_t start = clock();
33 thread th1(run);
34 thread th2(run);
35 th1.join();
36 th2.join();
37 clock_t end = clock();
38 cout << num << endl;
39 cout << end - start << "ms" << endl;
40
41 cin.get();
42 }