为什么以及在什么意义上 pthread_t 是一个不透明类型?

2023-11-24

SO 上的帖子表明pthread_t是一个不透明类型,不是数字,当然也不是线程索引,您不应该直接比较pthread_t的等等等等

问题:

  1. 为什么?是否真的有意支持没有线程数字 ID 的系统?当。。。的时候pthread_t实施很简单

    typedef unsigned long int pthread_t;
    

    ?

  2. 如何?上面这行之前有一个注释,所以实际上是

    /* Thread identifiers. The structure of the attribute type is not
       exposed on purpose.  */
    typedef unsigned long int pthread_t;
    

    in pthreadtypes.h这意味着什么?什么属性类型?这不是某个全局线程表的索引吗?


POSIX 标准允许pthread_t成为更复杂的东西(例如结构)。请参阅上一个问题,尤其是@james-mcnellis 的回答。金钱报价:

应用 IEEE Std 1003.1-2001/Cor 2-2004,项目 XBD/TC2/D6/26,添加 pthread_t 到不需要算术的类型列表 类型,从而允许将 pthread_t 定义为结构体。

UPDATE: 下面是一些更复杂的例子pthread_t定义:

  • https://github.com/JoakimSoderberg/pthreads-win32/blob/master/pthread.h
  • http://www.mit.edu/afs.new/sipb/project/pthreads/include/pthread.h
  • http://svn.gna.org/svn/xenomai/trunk/include/posix/pthread.h

这是一个古老的(2007)理由pthread_tWin32 的 pthreads 库中使用的结构:https://sourceware.org/ml/pthreads-win32/2007/msg00056.html

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

为什么以及在什么意义上 pthread_t 是一个不透明类型? 的相关文章

随机推荐

  • NSInteger 计数乘以 4?

    我不明白为什么这个 NSInteger 计数器会增加到数据库行真实值的 4 倍 也许这很愚蠢 但我真的不明白 到目前为止谢谢 NSInteger i i 0 for NSDictionary teil in gText NSLog teil
  • 相当于连接 Sum 的字符串

    我想要一个查询在第一行输出左表中的 ID 和连接表中的描述 Schema person id int role id int description varchar 100 personrole personid int roleid in
  • jquery ui 对话框在按钮和内容 div 上使用相同的类打开多个对话框

    我想通过在按钮和内容 div 上使用相同的类来打开多个对话框 下面的方法有效 但仅适用于第一次 jQuery helpDialog hide jQuery helpButton click function jQuery this next
  • 如何阻止 g++ 链接不需要的异常处理代码?

    我正在使用为arm eabi 编译的GCC G 开发嵌入式应用程序 由于资源限制 我尝试禁用标准 C 异常处理 我正在用 fno exceptions 编译代码 nostartfiles ffreestand 当一个类的全局实例存在 并且该
  • 为什么 LINQ to SQL 实体关联在插入新记录时会创建新(重复)行?

    我正在尝试使用 LINQ to SQL 插入一个新实体 并且实体与用户实体关联 新实体的插入成功 但我现有的用户实体被插入 就好像它是新用户一样 代码如下所示 var someEntity new Entity someEntity Use
  • InterWorks 在其 Workbook SDK 中使用什么 Tableau API?

    InterWorks 有一个 Workbook SDK 作为其 Power Tools for Tableau 产品的一部分 有谁知道他们如何能够做到这一点 SDK 可以在没有 Tableau Server 的情况下访问工作簿 因此我认为它
  • 如何在iOS平台上实现快速图像滤镜

    我正在开发 iOS 应用程序 用户可以在其中应用一组特定的照片滤镜 每个滤镜基本上都是一组具有特定参数的 Photoshop 操作 这些行动是 级别调整 亮度 对比度 色相饱和度 单个和多个叠加 我在代码中使用循环遍历图像中所有像素的算术表
  • 转换 JSON 格式(分组依据)

    我有这样的 JSON 对象 name cat value 17 group animal name dog value 6 group animal name snak value 2 group animal name tesla val
  • 递归搜索非二叉树中的节点

    我想在非二叉树中搜索一个项目 任何节点都可以有 n 个子节点 并立即退出递归 所讨论的节点可以是任何节点 而不仅仅是叶子节点 这是我的代码 但我没有得到完整的搜索 private nNode recursiveSearch data gi
  • 在 Django 中运行 PHP

    有没有办法在 django 中运行 PHP 脚本 我在 TinyMCE 中有一个运行 PHP 脚本的插件 并且它能够使用 XAMPP 的 Apache 工作 然而 Django确实支持PHP脚本的运行 因此该插件无法工作 我想知道是否有办法
  • PHPExcel 合并单元格上的行自动高度/换行文本

    有没有在 PHP Excel 中设置行自动高度的好方法 到目前为止 我已经看到您可以使用固定高度 您可以预先指定您想要的行的高度 我还发现 如果您不使用合并单元格 则可以使用自动高度 PHPExcel 合并单元格的动态行高 如何在phpex
  • 修复生成条形码时“GDI+ 中发生一般错误”的问题

    我正在用 C 编写一个条形码生成器 我可以将条形码生成为位图 并可以在 Picturebox WindowsForms 中显示它们 另一方面 我无法将条形码保存为 gif 或 jpeg 文件 我的条形码是位图文件 这是我的代码 Bitmap
  • Safari/Chrome 开发者工具调试 CSS 覆盖

    Safari Chrome 开发者工具通过删除 CSS 规则来指示 CSS 规则被其他内容覆盖 如图所示 有时我发现自己无法从 CSS 文件中找出导致该规则被忽略的原因 但 Safari 本身肯定会在它击穿它时知道这一点 有没有办法知道什么
  • 客户端 (JS) 和服务器 (PHP) 中的 AES 256

    我尝试使用相同类型的操作 即 AES 256 在服务器端和客户端上加密和解密数据 在服务器上我使用 PHP 客户端我使用 CryptoJS 到目前为止我只能在服务器上加密和解密客户端 请参阅代码 JS
  • R RPostgreSQL 使用 SSL 连接到远程 Postgres 数据库

    我正在尝试使用 R 从内部连接到远程 PostgreSQL 数据库RPostgreSQL包 并且我收到似乎与连接的 SSL 设置相关的错误 我已经验证我可以使用命令行进行连接psql 所以我知道连接是有效的并且可以从我的计算机访问 我在 R
  • 尝试运行 flutter 应用程序时“无法连接到lockdownd”

    我正在关注开始使用教程 我可以安装一切 flutter doctor返回所有复选标记 但最后有一条消息 idevice id 返回错误 错误 无法连接到lockdownd 错误代码 2 如果我尝试使用运行该应用程序 则会出现相同的消息flu
  • 我可以像其他库一样将 JointJS 作为 AngularJS 模块注入吗?

    我有一个带有角度的应用程序 我需要使用这个库http www jointjs com 所以我下载了 joint min js 和 joint min css 并将它们的路由放在 index html 中 但我不知道在 app js 中放入什
  • SQL 选择特定行周围的“窗口”

    以前很可能已经问过这样的问题 但我想不出要搜索的术语 我正在开发一个照片库应用程序 想要显示 9 个缩略图 显示当前显示的照片的上下文 在 3x3 网格中 当前照片位于中心 除非当前照片位于显示的前 4 张照片中 在这种情况下 例如 如果当
  • PHP 函数调用位置

    考虑这个片段 function f return hi echo f 对比这个片段 echo f function f return hi 当我运行脚本时 它们都会产生相同的结果 那太棒了 但我的问题是 我在任何搜索中都找不到好的答案或参考
  • 为什么以及在什么意义上 pthread_t 是一个不透明类型?

    SO 上的帖子表明pthread t是一个不透明类型 不是数字 当然也不是线程索引 您不应该直接比较pthread t的等等等等 问题 为什么 是否真的有意支持没有线程数字 ID 的系统 当 的时候pthread t实施很简单 typede