温故而知心 - 多线程中的Local和share变量

多线程中我们往往会忽略一个东西(至少我忽略了_),就是每个线程独有的local变量

线程local变量

例如:

static __thread int a[10];

通过定义static加__thread来定义线程内的local变量,每一个线程内都独享这样一个局部变量,不会被其他线程的动作所影响,也就是说a[10]对于每个线程来说都是隔离的

线程安全共享变量

可以通过定义volatile变量来实现,但要注意最好使用volatile作用在标志状态的变量上,因为volatile并不是原子的,如果应用不当会导致多线程安全问题。
简单例子定义:

static volatile int a = 10;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容