这两个代码段之间是否有区别: void f() { thread_local vector<int> V; V.clear(); ... // use V as a temporary variable } 和 void f() { static thread_local vector<int> V; V.clear(); ... // use V as a temporary variable } 背景知识:最初,我有一个STATIC向量V(用于保存一些中间值,每次输入函数时都会清除它)和一个单线程程序。我想将程序变成一个多线程程序,因此我必须摆脱这种静态修饰符。我的想法是将每个静态变量都转换为thread_local,而不用担心其他事情?这种做法会适得其反吗?