gcc原子操作测试

Posted zengjianrong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gcc原子操作测试相关的知识,希望对你有一定的参考价值。

 1 #include <stdio.h>
 2 #include <pthread.h>
 3 #include <stdlib.h>
 4  
 5 static int count = 0;
 6  
 7 void *test_func(void *arg)
 8 {
 9     int i=0;
10     for(i=0; i < 20000; i++) {
11         __sync_fetch_and_add(&count,1);
12         //count++;
13     }
14     return NULL;
15 }
16  
17 int main(int argc, const char *argv[])
18 {
19     pthread_t id[20];
20     int i = 0;
21  
22     for(i=0; i < 20; i++) {
23         pthread_create(&id[i],NULL,test_func,NULL);
24     }
25  
26     for(i=0; i<20; ++i) {
27         pthread_join(id[i],NULL);
28     }
29  
30     printf("%d
",count);
31     return 0;
32 }

参考链接:https://blog.csdn.net/youfuchen/article/details/23179799

以上是关于gcc原子操作测试的主要内容,如果未能解决你的问题,请参考以下文章

GCC 提供的原子操作

如何在 Linux 上执行适用于 x86、arm、GCC 和 icc 的原子操作?

C++11多线程 原子操作概念及范例

原子片段:原子编辑器中的多行片段

原子集的内置 GCC 是啥?

C程序存储结构