_Atomic类型限定符

作者:追风剑情 发布于:2019-12-9 19:42 分类:C

      并发程序设计把程序执行分成可以同时执行的多个线程。这给程序设计带来了新的挑战,包括如何管理访问相同数据的不同线程。C11通过包含可选的头文件stdatomic.h和threads.h,提供了一些可选的(不是必须实现的)管理方法。值得注意的是,要通过各种宏函数来访问原子类型。当一个线程对一个原子类型的对象执行原子操作时,其他线程不能访问该对象。例如,下面的代码:

int hogs; //普通声明
hogs = 12; //普通赋值
可以替换成:
_Atomic int hogs; // hogs是一个原子类型的变量
atomic_store(&hogs, 12); //stdatomic.h中的宏
这里,在hogs中储存12是一个原子过程,其他线程不能访问hogs。编写这种代码的前提是,编译器要支持这一新特性。


标签: C语言

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号