我有一些使用线程本地存储的 C++ 代码,每个线程都有一个可以将数据推入的向量。
我使用 TLS 存储每个线程的索引 ID,这可用于查找将数据推送到哪个向量。然后它执行大量代码,将数据推送到向量中。
我想知道的是,操作系统是否有可能在获取指向线程本地对象的指针后重新安排我的代码在不同的线程上执行。(到目前为止,代码执行得很好,我还没有看到这种情况发生)。但是如果可能的话,这似乎肯定会破坏我的程序,因为现在两个线程可以拥有相同的对象。
假设这是真的,即使对于使用任何复杂性 TLS 的任何代码,这似乎也是一个问题,TLS 是否仅适用于您不获取地址的简单对象?
谢谢!