我试图理解TLS是如何工作的,但我认为维基百科和MSDN提供的定义是不同的。
通过阅读维基百科页面,我的理解是TLS是一种映射数据的方法,这些数据通常在本地为进程的每个线程提供全局/静态。如果这是真的,则不同的线程无法访问其他线程的数据。
根据MSDN:“一个线程分配索引,其他线程可以使用它来检索与索引关联的唯一数据”,因此看起来线程可以访问其他线程的数据。
这似乎与维基百科所说的相反,哪里有捕捉?
答案 0 :(得分:0)
这里有两个混淆:
简而言之,TLS的工作方式类似于C ++地图。关键是一对线程ID和TLS ID。数据通常是指针,可用于间接引用某些数据。访问元素时,只提供TLS ID,实现添加调用线程的ID以形成查找键。不用说,访问该地图当然是线程安全的。