首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有语言特性的线程专用内存

具有语言特性的线程专用内存
EN

Stack Overflow用户
提问于 2009-06-27 07:11:52
回答 3查看 151关注 0票数 1

是否存在使用语言特性而不是通过函数调用之类的机制来支持一个地址空间中的进程公共内存和另一个地址空间中的线程特定内存的语言?

代码语言:javascript
复制
process int x;
thread int y;
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-06-27 13:31:36

C#中的ThreadStatic属性

票数 0
EN

Stack Overflow用户

发布于 2009-06-27 13:17:47

Visual C++编译器允许后者通过非标准的__declspec(thread)扩展-但是,它受到严格的限制,因为它在动态加载的DLL中不受支持。

第一种主要是通过extern声明来支持的-除非动态链接库开始发挥作用(这可能就是您正在寻找的场景)。

我不知道有任何环境可以让这件事像你所描述的那样简单。

票数 0
EN

Stack Overflow用户

发布于 2009-06-28 06:21:02

C++0x添加了"thread_local“存储说明符,因此在名称空间(或全局)范围内,您的示例将是

代码语言:javascript
复制
int x;              // normal process-wide global variable
thread_local int y; // per-thread global variable

在函数中声明类成员或局部变量时,也可以将thread_local与static一起使用:

代码语言:javascript
复制
class Foo {
    static thread_local int x;
};

void f() {
    static thread_local int x;
}

不幸的是,这似乎不是Visual Studio2010或计划中的GCC版本支持的C++0x功能之一。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1052279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档