"thread storage duration" 和 "thread local storage duration" 是同义词吗?
Are "thread storage duration" and "thread local storage duration" the synonyms?
C11, 6.2.4 对象的存储持续时间,4(强调):
An object whose identifier is declared with the storage-class specifier _Thread_local
has thread storage duration.
C11, 7.5 错误 , 2(强调已添加):
errno
which expands to a modifiable lvalue 201) that has type int
and thread local storage
duration
“线程存储持续时间”和“线程本地存储持续时间”是同义词吗?
额外说明:目前 _Thread_local
的支持独立于 __STDC_NO_THREADS__
而它(可能)是 .
是的。它们是同一回事。
C11 库文件 errno.h
的规范告诉您 errno
的行为就像声明为:
_Thread_local int errno;
并且存储持续时间规范告诉您 _Thread_local
是什么意思
Are "thread storage duration" and "thread local storage duration" the synonyms?
这是我看到的唯一合理的解释,是的。规范第 6.2.4/1 段中存储持续时间的定义不包括“线程本地存储持续时间”:
There are four storage durations: static, thread, automatic, and allocated.
但是,线程存储持续时间是使用 _Thread_local
存储 class 说明符声明的标识符的存储持续时间,在一般讨论中,将与此类标识符关联的对象描述为“本地线程”。我将第 7.5 节中出现的“线程本地存储持续时间”——这是该术语在规范中的唯一出现——视为编辑错误,但我认为其预期含义没有疑问。规范的评论
强化了这一点
The value of errno in the initial thread is zero at program startup (the initial value of errno in other threads is an indeterminate value)
(C11 7.5/3).
errno
在不同线程中可能有不同的值只能用两种方式解释:
errno
具有线程存储持续时间,或
- 这是
errno
的一个特殊的、独特的特征,通过线程存储持续时间以外的其他方式提供。
我认为根据整个规范,解释 (2) 完全不可信。
C11, 6.2.4 对象的存储持续时间,4(强调):
An object whose identifier is declared with the storage-class specifier
_Thread_local
has thread storage duration.
C11, 7.5 错误
errno
which expands to a modifiable lvalue 201) that has typeint
and thread local storage duration
“线程存储持续时间”和“线程本地存储持续时间”是同义词吗?
额外说明:目前 _Thread_local
的支持独立于 __STDC_NO_THREADS__
而它(可能)是
是的。它们是同一回事。
C11 库文件 errno.h
的规范告诉您 errno
的行为就像声明为:
_Thread_local int errno;
并且存储持续时间规范告诉您 _Thread_local
是什么意思
Are "thread storage duration" and "thread local storage duration" the synonyms?
这是我看到的唯一合理的解释,是的。规范第 6.2.4/1 段中存储持续时间的定义不包括“线程本地存储持续时间”:
There are four storage durations: static, thread, automatic, and allocated.
但是,线程存储持续时间是使用 _Thread_local
存储 class 说明符声明的标识符的存储持续时间,在一般讨论中,将与此类标识符关联的对象描述为“本地线程”。我将第 7.5 节中出现的“线程本地存储持续时间”——这是该术语在规范中的唯一出现——视为编辑错误,但我认为其预期含义没有疑问。规范的评论
The value of errno in the initial thread is zero at program startup (the initial value of errno in other threads is an indeterminate value)
(C11 7.5/3).
errno
在不同线程中可能有不同的值只能用两种方式解释:
errno
具有线程存储持续时间,或- 这是
errno
的一个特殊的、独特的特征,通过线程存储持续时间以外的其他方式提供。
我认为根据整个规范,解释 (2) 完全不可信。