thread_local을 사용하여 선언된 변수는 자동으로 정적으로 선언됩니까?
다음 코드 세그먼트는 한눈에 동일해 보입니다.
<code class="cpp">void f() { thread_local vector<int> V; // ... } void f() { static thread_local vector<int> V; // ... }</code>
그러나 C Standard에서는 미묘한 차이가 드러납니다. 블록 범위로 thread_local 변수를 정의할 때 명시적으로 지정되지 않은 경우 정적 저장소 클래스 지정자가 암시됩니다. 이는 첫 번째 코드 세그먼트가 두 번째 코드 세그먼트와 동일하다는 것을 의미합니다.
유사한 정의에도 불구하고 정적 변수와 thread_local 변수는 크게 다릅니다. 정적 저장 기간이 있는 변수는 전체 프로그램과 연결되고, thread_local 변수는 개별 스레드와 연결됩니다. 각 스레드에는 thread_local 변수와 연관된 고유한 개체 또는 참조가 있습니다.
위 내용은 thread_local 변수는 블록 범위에서 암시적으로 정적입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!