C++代码中的 __attribute__

在阅读陈硕老师的 muduo 网络库代码时,看到有以下的使用方式(GUARDED_BY ----> THREAD_ANNOTATION_ATTRIBUTE__ ----> __attribute__)。通过查阅资料得知:
__atrribute__ 是一个编译器指令,它指定声明的特征,允许更多的错误检查和高级优化。关键字__attribute__后跟两组括号(双括号使“宏输出”变得容易,尤其是多个属性)。括号内是逗号分隔的属性列表。__attribute__指令放在函数,变量和类型声明之后。[1]
C++代码中的 __attribute___第1张图片
C++代码中的 __attribute___第2张图片

如本例中的:
	GUARDED_BY(mutex_)
	THREAD_ANNOTATION_ATTRIBUTE__(guarded_by(mutex_))
	 __attribute__((guarded_by(mutex_))
guarded_by属性是为了保证线程安全,使用该属性后,线程要使用相应变量,必须先锁定mutex_
使得pendingFunctors_是原子操作。

1. attribute @Mattt
2. Clang 9文档 ---- 线程安全分析

你可能感兴趣的:(c++,muduo)