在流行的现代操作系统中,线程本地存储是否存在已知的大小限制?

2024-06-24

当我使用thread_local, _Thread_local, __thread, or __declspec(thread),编译器似乎在线程创建时分配一个线程本地存储并将地址存储在fs or gs在 x86 派生系统中注册。

在这种情况下,是否存在“线程本地存储溢出”之类的情况?


有限制。每个系统都会有所不同,但在Windows上,有一个有限的数据部分专门映射线程。此部分的大小是有限的。

旧版本的 Windows 直接使用此方法,并且在创建新项目时会失败。

上次我检查 Windows 7+ 时,这种情况已经消失(操作系统为整个 DLL 使用 1 个插槽 - 作为到线程本地映射的重定向),但有一个不同的限制,它限制了可用的唯一插槽的数量。每个加载的 DLL 都使用一个槽,因此可以使用线程本地存储的 DLL 数量受到限制。

也可以看看维基百科:线程本地存储 https://en.wikipedia.org/wiki/Thread-local_storage#Windows_implementation

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在流行的现代操作系统中,线程本地存储是否存在已知的大小限制? 的相关文章

  • 我们可以在 C# 中定义枚举的隐式转换吗?

    是否可以在 C 中定义枚举的隐式转换 可以实现这一目标的东西吗 public enum MyEnum one 1 two 2 MyEnum number MyEnum one long i number 如果没有 为什么不呢 有一个解决方案
  • gets 和 scanf 有什么区别?

    如果代码是 scanf s n message vs gets message 有什么区别 似乎两者都获取消息的输入 基本区别 参考您的特定场景 scanf 遇到一个时结束接受输入whitespace newline or EOF gets
  • 在子目录中构建共享库

    我正在尝试构建一个使用一些 C 代码的 R 包 我有一个编译为可执行文件的 C 库 可以从命令行调用 有一个与之关联的 Makefile 我正在尝试获取信息here http cran r project org doc manuals R
  • 在异步方法中使用时 HttpClient 标头被清空

    我正在使用 NET Framework 4 6 1 我的 Web api 中有一个控制器 其中有静态 HttpClient 来处理所有 http 请求 在 IIS 上托管我的应用程序后 大约每月一次 我的应用程序的所有传入请求都会出现以下异
  • 在宏中使用 # [重复]

    这个问题在这里已经有答案了 请解释一下代码 include
  • 指向指针的指针和指向二维数组的指针之间的区别

    如果我有一个二维数组 B 定义为 int B 2 3 1 3 5 2 4 6 Is int p B与 一样int p 3 B int f B printf d f 1 gives 5作为输出 同时printf d f 给出 1 作为答案 为
  • 用 C# 中的字典中的值替换字符串中的单词

    我有一个简单的dictionary像这样 var fruitDictionary new Dictionary
  • 将标准库添加到C++ eclipse项目中

    一个 非常 新手 C 问题 有没有办法自动将标准库添加到 C eclipse 项目中 我安装了 CDT 主要功能插件 您可以手动添加 STL 标头的路径路径和符号 gt 包含选项卡 http help eclipse org galileo
  • 在 SpriteKit 中,touchesBegan 是否与 SKScene 更新方法在同一线程中运行?

    在 Apple 文档中高级场景处理 https developer apple com library ios documentation GraphicsAnimation Conceptual SpriteKit PG Actions
  • VS2010中VSHost.exe不断启动

    我正在 VS2010 中使用一个包含大量项目的解决方案 但它不断变得无响应 我注意到的一件事可能是一条线索 尽管我尚未开始任何调试 但 MyApplicationName vshost exe 不断出现在进程列表中 也许每当构建发生时它就会
  • 使用私有构造函数的 C# 单元测试类?

    好吧 我刚刚收到一个作业 我必须对具有私有构造函数的类执行单元测试 现在 当所有方法也都是非静态时 我该如何在不初始化类的情况下进行单元测试 有什么方法可以对具有私有构造函数的类进行单元测试 无需反射 如果您无法将类公开 您仍然可以通过以下
  • 如何在 WCF 中反序列化自定义 SOAP 标头?

    我正在尝试向通过 WCF 的所有 SOAP 请求添加自定义标头 我发现这篇精彩的文章 http blogs msdn com b mohamedg archive 2012 10 21 adding custom soap headers
  • UWP - 绑定枚举差异

    我遇到了一个非常有趣的问题 假设 UWP 应用中有以下 XAML 页面内容
  • 如何在Windows Azure上调用ffmpeg.exe转换音频文件?

    我在 Windows Azure 上运行 Web 角色来接收 AAC 音频文件 通过 base64 字符串上传 并将它们存储到 blob 中 现在效果很好 接下来 我还必须将它们转换为 MP3 并将 MP3 存储到 blob 中 我决定使用
  • 是否有理由为什么用 XmlInclude 修饰的基类在序列化时仍然会抛出类型未知的异常?

    我将简化代码以节省空间 但所提供的内容确实说明了核心问题 我有一个类 它的属性是基类型 有 3 个派生类可以分配给该属性 如果我将任何派生类分配给容器并尝试序列化容器 XmlSerializer 会抛出可怕的错误 类型 x 不是预期的 使用
  • 实体框架中的导航属性是什么

    我是实体框架的新手 当Visual Studio创建模型图时我们主要可以看到Entities Propertie和Navigation Properties这两个东西 那么这些Navigation Properties是什么 如何使用它们
  • 为什么 ASP.Net MVC Range 属性采用类型?

    我只是想知道为什么范围验证属性可以采用类型和两个字符串作为参数 这是为了根据枚举或类似的东西验证字符串吗 另外 我想做的是找到一种简单的方法来验证必须出现在枚举中的 3 个字符的字符串 有什么建议吗 谢谢 亚历克斯 我确实发现你提到的 Ra
  • 是否可以在 Eclipse 中为除 Java 之外的 Eclipse 编写插件?

    谁能帮我用c 写一个eclipse插件 weekens 和 celavek 感谢您提供的信息 我正在研究 JNI 并将尝试实现它 celavek 我们必须做什么样的主控 控制 在C 和java接口中处理是否风险更大 我的要求是在 Java
  • 具有可导出私钥的证书的“错误密钥”例外

    我正在尝试使用非对称加密来加密然后解密文件 我已经使用 makecert 创建了一个测试证书并将其安装到我的个人本地计算机存储中 将来我必须在多个服务器上安装此证书 这就是为什么我使用 pe 标志创建它 即使用可导出的私钥 证书已成功创建并
  • 从不同的线程访问对象

    我有一个服务器类 它基本上等待来自客户端的连接 在该类中 我创建了一个 NetworkStream 对象 以便能够从客户端接收字节 由于 NetworkStream Read 方法不是异步的 这意味着它将等到从客户端读取字节才能继续执行类似

随机推荐

  • 通过VSTS发布多配置阶段两个变量,但只有一个乘数

    我有一个 VSTS 发布定义 它传递了两个变量 我无法控制其内容 它们包含一个逗号分隔的名称字符串和一个逗号分隔的 ID 字符串 这些 ID 与索引的名称相对应 我想使用一个代理阶段 该阶段将并行选项设置为多重配置 并将乘数字段设置为 ID
  • 如何测试 before_filter 是否与 Rails 中的 RSpec 一起正常工作

    我有一个check user access control我的 ApplicationController 中的 before filter 在允许登录用户通过之前检查其角色和权限 我正在尝试对其进行一些测试 但找不到好的方法 对于简单的索
  • 同步2个复杂对象图状态的最佳方法是什么

    我有一个复杂的对象图来表示操作调度 在某一时刻 我必须将整个图表序列化到 Web UI 通过 XML JSON 以便用户使用基于 Javascript 的甘特图组件修改时间表 用户完成编辑后 Java 服务器层中图的状态必须与修改后的状态同
  • iPhone:两个 RootViewController 之间的淡入淡出过渡

    Obj C or MonoTouch C 答案很好 初始 UIWindow 的 RootViewController 是一个简单的登录屏幕 window RootViewController loginScreen 登录后 我将根设置为主应
  • JQuery UI 对象按钮栏的工作方式类似于单选按钮

    我想在 jQuery 中制作一个控件或使用一个控件 其作用类似于一系列单选按钮 但看起来像实心按钮而不是单选圆 它们看起来像一个水平菜单 但一次只能选择一个 jQuery UI 在 1 8 中为此添加了一个小部件 请查看jQuery UI
  • iOS:从相机获取逐像素数据

    我知道 AVFoundation 及其捕获支持 虽然不太熟悉 但是 我没有看到任何易于访问的 API 来获取逐像素数据 每像素 RGB 或类似数据 我确实记得在文档中读过这是可能的 但我真的不明白如何做到 所以 这可以做到吗 如果是这样 怎
  • Ruby on Rails - 无法加载此类文件 - net/ssh

    我已经为此苦苦挣扎了几天了 当我尝试从视图调用助手中的方法来执行 ssh 时 它会抛出该错误 加载以下文件时发生此错误 net ssh 但是当我将代码复制到test rb文件并从提示符处执行ruby test rb它连接完美 可能是什么问题
  • 如何使用 python pptx 复制带有图像的幻灯片? [复制]

    这个问题在这里已经有答案了 我的最终目标是改变演示文稿的主题 为此 我创建了一个源模板和一个新模板 具有正确的主题 我迭代源模板中的每张幻灯片 然后使用以下代码将包含源内容的新幻灯片添加到新模板中https stackoverflow co
  • 无法识别的 SSL 消息、明文连接?例外

    我有一个 java 编译包可以与网络上的 https 服务器通信 运行编译出现以下异常 javax net ssl SSLException Unrecognized SSL message plaintext connection at
  • 什么会导致 TCP/IP 丢弃数据包而不丢弃连接?

    我有一个基于 Web 的应用程序和一个客户端 都是用 Java 编写的 无论如何 客户端和服务器都在 Windows 上 客户端通过以下方式发出 HTTP GET Apache HttpClient http hc apache org h
  • Spring Boot 和 MongoDB 如何删除 '_class' 列?

    当将数据插入 MongoDB Spring Data 时添加自定义 class 列 在使用 Spring Boot 和 MongoDB 时是否有办法消除 class 列 或者我需要创建一个自定义类型映射器 有什么提示或建议吗 戴夫的回答是正
  • 当我尝试在依赖项中使用 testCompile 时,发生 Gradle“构建脚本错误”

    I m working with Android Studio and in my dependencies for my application I attempting to add a testCompile dependency a
  • 使用 WinAPI 的窗口截图

    如何使用 WinAPI 和 C 制作程序窗口的屏幕截图 要结束了WM PAINT 0x000F 发送到窗口的消息 我想对其进行屏幕截图 wParam HDC处理 但我的图片框中没有屏幕截图 如果我发送一个WM CLOSE消息 一切正常 目标
  • 从私有 GitHub 存储库迁移到公共和私有

    我使用 GitHub 上的私人存储库开发了一个客户项目 我们现在要做的就是开放其中的某一部分 并产生该项目的开源版本 我们的想法是 客户的版本将在此基础上构建 对开源版本所做的任何更改也应适用于私有版本 现在的问题是我不能将当前的 GitH
  • 在自定义 wp_query 循环中按价格订购产品

    我目前有一个非常简单的 wp query 循环来循环我的 WooCommerce 产品 如下所示 args array posts per page gt 1 product cat gt cat post type gt product
  • 输入编码:接受UTF-8

    我需要在 PowerShell 下获取本机应用程序的输出 问题是 输出是用 UTF 8 无 BOM 编码的 PowerShell 无法识别它 只是将那些时髦的 UTF 字符直接转换为 Unicode 我发现 PowerShell 有 Out
  • 如何brew安装特定版本的Node?

    例如 我想安装 7 9 或 7 10 但想避免安装 Node 8 因为webpack node sass破坏错误 当我跑步时brew search node这就是我所看到的 brew搜索节点 leafnode llnode 节点 节点构建
  • 此资源不支持“multipart/form-data”

    我有 WEBAPI2 后端 我尝试从邮递员发送表单数据 但出现这个错误 没有 MediaTypeFormatter 可用于从媒体类型为 multipart form data 的内容中读取类型为 StartWorkingDay 的对象 这是
  • 使用 Node.js 在 Postgres 中更新插入

    我正在尝试使用带有 pg 扩展名的 node js 版本 0 5 4 在 postgres 数据库中进行插入或更新 到目前为止我有这个代码 client query text update users set is active 0 ip
  • 在流行的现代操作系统中,线程本地存储是否存在已知的大小限制?

    当我使用thread local Thread local thread or declspec thread 编译器似乎在线程创建时分配一个线程本地存储并将地址存储在fs or gs在 x86 派生系统中注册 在这种情况下 是否存在 线程