线程本地存储和 iOS

2023-11-21

我的理解是iOS不支持__thread。显然,有一种方法可以使用pthread_setspecific。然而,是否已经有一个模板类实现了这个功能呢?

我愿意重新发明轮子,特别是因为它不是一段简单的代码。

任何链接将不胜感激!

Cheers


基金会提供-[NSThread threadDictionary]。您可以使用它来存储线程本地 Objective-C 对象,其中可能包括NSValue包装任何动态存储的地址。

请注意,Cocoa 正在朝着线程代码的线程盲执行方向发展,您可以提交要在任何可用的系统拥有的线程上运行的代码块。这是 Grand Central Dispatch 和共享的模型使用的模型NSOperationQueues。依赖线程本地存储的代码将无法充分利用此模型。参见苹果的并发编程指南了解更多信息。

ETA:从 iOS 5 / OS X 10.7 开始,Grand Central Dispatch 通过以下方式获得了所谓的队列本地存储:dispatch_queue_set_specific, dispatch_queue_get_specific, and dispatch_get_specific功能。当您为键设置新值或销毁队列时,除了值之外,setter 还允许您提供析构函数。 getter sans 队列使用当前队列作为上下文,如果当前队列上未定义键,则将在当前队列的目标队列上重复查找(类似于原型 OO 系统中属性查找的工作方式)。

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

线程本地存储和 iOS 的相关文章

随机推荐

  • VS 插件将光标下的标识符的完整类型名称复制到剪贴板中[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 是否有一个 Visual Studio 插件可以将光标下的标识符的完整类型名称复制到剪贴板中 请不要将我链接到 VS 2010 复制类 接口的完整类
  • 如何从一个具有依赖性的批处理文件启动多个批处理文件?

    我想运行一个批处理文件 启动其他批处理文件 我看了这里发布的类似问题 如何在一个 BAT 文件中运行多个 BAT 文件 我按照这个例子 特别是最后一个建议 并且它起作用了 部分 它确实启动了我需要的批处理文件 但是 为了使应用程序正常运行
  • 为什么 JavaFX 中没有 ObservableQueue?

    为什么JavaFX中没有ObservableQueue 如果我们查看 FXCollections 的 Java 9 文档 只是为了看看与 8 相比是否有任何更改 我们会看到用于创建 Observable 集 列表和映射的静态辅助方法 还有一
  • SVG 矩形忽略高度?

    这里有一个工作演示的一个矩形 我想将 height 属性移至 css好吧 它不起作用 让我一片空白 它发生在 Firefox 和 Chrome 中 它有不同的名字吗 我不明白为什么我不能使用 css 文件 填充颜 色有效 工作示例 css
  • pip install - 连接被同行重置

    当我尝试使用 pip 安装 lxml 时 出现异常 连接被对等方重置 Downloading unpacking lxml Downloading lxml 3 0 1 tar gz 3 2Mb 643Kb downloaded Excep
  • Vue 3:如何访问组件函数中的设置变量

    考虑以下使用 Vue 3 中的组合 API 的简单示例 我试图拥有一个实例test在我的组件的功能中可用
  • Linq to Sql、Linq、类型化数据集、ADO.NET 之间的区别

    我想知道这个问题有一段时间了 现在好像有很多方法不知道什么时候用什么 或者是否有必要学习它们 就像我不知道他们是否基本上做所有相同的事情 只是基本上坚持其中一个直到你掌握它然后也许看看其他的 因此 当我参加 ASP NET 课程时 它是我计
  • 使用C读取linux内核版本?

    我正在使用 Ubuntu 我想阅读其内核版本 我在 proc 中发现了一个名为version的文件 记录了当前内核的版本 如果我不想读取文件 是否有其他方法 例如 C 中的内置函数 可以读取 C 中的版本 Thanks 您可以使用uname
  • Windows 窗体和 ShowDialog 问题

    我有一个无国界Windows 窗体应用 The main window creates other forms simple dialogs where I can click yes or no with ShowDialog Every
  • 使用 XML 作为小型 C# 应用程序的数据持久性的好方法是什么? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我需要一些关于使用 XML 作为小型 C 应用程序的数据持久性的好方法的意见 这是一个独立的应用程序 用户不共享相同的数据持久性 因此 文件访问是独占的 这就是我首先想到 XML 的原因
  • 如何使用 jsonlite R 包将长度为 1 的 R 向量编码为 json 中的单个值?

    我正在尝试使用 jsonlite 包和 toJSON 函数将 R 列表编码为 json 我有一个简单的项目 例如 list op abc 我希望成为 op abc 相反 我得到 op abc 我尝试向其提供此 json 的 API 会阻塞后
  • jQuery 处理/隐藏预期的 Ajax 404 错误

    我使用 ajax head 请求来检查文件 在大多数情况下 该文件不会存在 最好以某种方式阻止 404 显示在我的调试控制台中 有没有一个好的方法来实现这一目标 需要明确的是 http jsfiddle net kannix FFLdP 不
  • 简单注射器诊断警告一次性瞬态

    我正在尝试配置简单的注入器来工作 但我似乎无法通过这个 我按照此中有关如何解决此问题的说明进行操作link但它不起作用 这是错误消息 NotificationEntities 注册为瞬态 但实现 I一次性 这是 SimpleInjector
  • 如何以编程方式删除列?

    如何在 Excel 中删除一列 或多列 例如 如何删除C列并将其余部分左移 这是使它更清晰的解决方案 感谢Leniel对于链接 Excel Range range Excel Range sheet get Range C1 Missing
  • 在 Redis 中将一个列表插入另一个列表

    是否可以在另一个数据结构中包含一个数据结构 到目前为止 我只能将字符串或数字插入列表中 理想的数据结构是一个列表 其中每个组件也是一个列表 简单回答 不可以 Redis 列表成员只能是字符串 复杂的答案 你可以用字符串做很多事情 您可以使用
  • 如何使用python代码找到PDF文件每个段落的字体大小?

    现在我正在做一个项目 我必须找到该 PDF 文件中每个段落的字体大小 我尝试过各种Python库 如fitz PyPDF2 pdfrw pdfminer pdfreader 所有库都会获取文本数据 但我不知道如何获取段落的字体大小 提前致谢
  • 一次加载多个文件?

    假设我有一个包含一堆 rdata 文件的目录 file names as list dir pattern stock 1 1 stock 1 rdata 2 1 stock 2 rdata 现在 如何通过一次调用加载这些文件 我总能做到
  • 如何使用 jQuery 按文本内容查找元素?

    谁能告诉我是否可以根据元素的内容而不是通过元素来查找元素ID or class 我正在尝试查找没有不同类或 ID 的元素 然后我需要找到该元素的父元素 您可以使用 contains选择器根据内容获取元素 演示在这里 div contains
  • 有条件地应用带有 ng-repeat 的过滤器

    我有一个对象 其中包含数字和文本值的混合 我想申请numbers当对象是数字时 显然 过滤到对象的值 但当它不是一个数字时 我就可以直接吐出字符串 照原样 申请 numberto the value 格式化数字 但将字符串值保留为空 毕竟
  • 线程本地存储和 iOS

    我的理解是iOS不支持 thread 显然 有一种方法可以使用pthread setspecific 然而 是否已经有一个模板类实现了这个功能呢 我愿意重新发明轮子 特别是因为它不是一段简单的代码 任何链接将不胜感激 Cheers 基金会提