程序员

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

2016-09-21  本文已影响0人  哈比猪

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

线程local变量

例如:

static __thread int a[10];

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

线程安全共享变量

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

static volatile int a = 10;
上一篇下一篇

猜你喜欢

热点阅读