多进程与多线程(九)

2.2      TLS,线程本地存储

在多线程编程中, 同一个变量, 如果要让多个线程共享访问, 那么这个变量使用时就需要注意线程安全问题;如果这个变量不想使多个线程共享访问, 那么该怎么办? 呵呵, 这个办法就是TLS, 线程本地存储,即使得变量的生命期局限在一个线程内,让线程独享变量。实施方法是,在变量名前中使用特定标识符限定。

       比如,一个支持多操作系统、多线程代码编写的样式代码如下:

#ifdef WIN32

#define MT_TLS  __declspec(thread)

#else

#define MT_TLS __thread

#endif

……

static MT_TLS int sqlNum; //定义一个线程本地存储的变量

……

    这些变量,在多线程结构的代码中,将分别被存储在每个线程的独立空间,对每个线程而言,它们只是有着相同变量名却值不相同的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值