【发布时间】:2013-11-14 14:45:21
【问题描述】:
C++11 有一些线程的概念。例如,它定义了一个新的存储说明符 thread_local,并指定对于具有此存储说明符的变量,“每个线程都有一个不同的对象或引用”[basic.stc.thread]。
为此目的,什么被视为“线程”?是否只有使用标准线程库创建的线程(即由std::thread 对象表示的线程)?通过其他方式创建的线程(例如,直接在 Linux 上使用 pthreads)呢?如果我使用提供用户空间线程的库怎么办?每个线程都有自己的thread_local 对象副本(我真的不知道如何实现)?
如果答案是“它是由实现定义的,出于thread_local 之类的目的,它被认为是一个线程”,有人可以举一个例子来说明一个众所周知的实现是如何定义的吗?
【问题讨论】:
-
@texasbruce Java now 有那些关键字?他们在 17 年前就在那里。
标签: c++ multithreading c++11 language-lawyer thread-local-storage