¿Las variables C ++ 11 thread_local son automáticamente estáticas?

¿Hay alguna diferencia entre estos dos segmentos de código?

void f() {
    thread_local vector<int> V;
    V.clear();
    ... // use V as a temporary variable
}

y

void f() {
    static thread_local vector<int> V;
    V.clear();
    ... // use V as a temporary variable
}

Historia de fondo: originalmente tenía un vector V ESTÁTICO (para mantener algunos valores intermedios, se borra cada vez que ingreso a la función) y un programa de subproceso único. Quiero convertir el programa en un subproceso múltiple, por lo que de alguna manera tengo que deshacerme de este modificador estático. Mi idea es convertir cada estática en thread_local y no preocuparme por nada más. ¿Puede este enfoque ser contraproducente?

Respuestas a la pregunta(4)

Su respuesta a la pregunta