Skip to content

Commit e6f6e17

Browse files
authored
Update 003_std_atomic_unsigned_long.cpp
1 parent 03a7119 commit e6f6e17

File tree

1 file changed

+46
-1
lines changed

1 file changed

+46
-1
lines changed
Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,46 @@
1-
1
1+
#include <thread>
2+
#include <atomic>
3+
#include <iostream>
4+
#include <list>
5+
6+
using namespace std;
7+
8+
atomic_ulong ulongCount(0);
9+
10+
void threadfun1()
11+
{
12+
for(int i =0; i< 1000; i++)
13+
{
14+
printf("ulongCount:%ld\r\n", ulongCount);
15+
}
16+
}
17+
void threadfun2()
18+
{
19+
for(int i =0; i< 1000; i++)
20+
{
21+
printf("ulongCount:%ld\r\n", ulongCount);
22+
}
23+
}
24+
25+
int main()
26+
{
27+
std::list<thread> lstThread;
28+
for (int i=0; i< 100; i++)
29+
{
30+
lstThread.push_back(thread(threadfun1));
31+
}
32+
for (int i=0; i< 100; i++)
33+
{
34+
lstThread.push_back(thread(threadfun2));
35+
}
36+
37+
for (auto& th: lstThread)
38+
{
39+
th.join();
40+
}
41+
42+
int x = ulongCount.load(memory_order_relaxed);
43+
printf("finally ulongCount:%ld\r\n", x);
44+
}
45+
46+

0 commit comments

Comments
 (0)