pthread_create 并传递一个整数作为最后一个参数

2023-12-09

我有以下功能:

void *foo(void *i) {
    int a = (int) i;
}

int main() {
    pthread_t thread;
    int i;
    pthread_create(&thread, 0, foo, (void *) i);
}

编译时,存在一些关于转换的错误((void *) i and int a = (int) i)。如何传递一个整数作为最后一个参数pthread_create适当地?


以 szx 的答案为基础(因此请给予他信任),以下是它在您的工作中的工作原理for loop:

void *foo(void *i) {
    int a = *((int *) i);
    free(i);
}

int main() {
    pthread_t thread;
    for ( int i = 0; i < 10; ++1 ) {
        int *arg = malloc(sizeof(*arg));
        if ( arg == NULL ) {
            fprintf(stderr, "Couldn't allocate memory for thread arg.\n");
            exit(EXIT_FAILURE);
        }

        *arg = i;
        pthread_create(&thread, 0, foo, arg);
    }

    /*  Wait for threads, etc  */

    return 0;
}

在循环的每次迭代中,您都会分配新的内存,每个内存都有不同的地址,因此传递给的内容pthread_create()每次迭代都是不同的,因此您的线程最终不会尝试访问相同的内存,并且您不会像刚刚传递地址那样遇到任何线程安全问题i。在这种情况下,您还可以设置一个数组并传递元素的地址。

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

pthread_create 并传递一个整数作为最后一个参数 的相关文章

  • 使用 gcc 在 Linux 上运行线程构建块 (Intel TBB)

    我正在尝试为线程构建块构建一些测试 不幸的是 我无法配置 tbb 库 链接器找不到库 tbb 我尝试在 bin 目录中运行脚本 但这没有帮助 我什至尝试将库文件移动到 usr local lib 但这又失败了 任何的意见都将会有帮助 确定您
  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • STL 迭代器:前缀增量更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的预增量比后增量快 正确吗 如果是 为什么呢 https stackoverflow com questions 2020184 preincrement faster than postinc
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现

随机推荐

  • 如何将Excel日期格式转换为R中的正确日期

    我正在使用 csv 不幸的是 它使用 42705 的数字格式记录了日期时间 尽管它应该是 01 12 2016 我想使用 lubridate 或其他一些包将其转换为 R 中正确的格式 有没有一个函数可以处理它 你不需要使用lubridate
  • Nginx 显示 php 代码而不是执行

    我已经在用 Node js 制作的 nginx 上运行应用程序 工作正常 现在我必须在同一个 nginx 上运行 php 应用程序 我在这里写下我的配置文件供您阅读 当我加热 http 192 168 1 201 3002 在我的 chro
  • PHP:用逗号分隔数组[重复]

    这个问题在这里已经有答案了 我有这段代码 应该显示数组中的值列表 后跟逗号和空格 但是我不希望最后一个后面有逗号和空格 例如我想要tag1 tag2 tag3代替tag1 tag2 tag3 这是我的代码
  • 使用 .net 正则表达式替换字符串中的文本

    我尝试在 net 中使用 regexp 来查找字符串并用某些标记替换字符串 例如 myString 这是我想要更改 和 的文本示例 我如何找到带有 之间标记的文本 并为每个文本执行一些操作来替换它 在数据库中搜索并替换任何找到的匹配项 我想
  • Python 3.x 中的 as 命令有什么作用?

    看过很多次但一直不明白是什么意思as命令在 Python 3 x 中执行 你能用简单的英语解释一下吗 它本身不是命令 而是用作命令一部分的关键字with陈述 with open myfile txt as f text f read 之后的
  • 如何查找使用 TextChanged 添加的文本

    我希望在文本框中的文本和变量中的字符串之间进行同步 我找到了如何获取更改字符串的索引 在文本框中 添加的长度和删除的长度 但如何才能真正找到添加的字符串 到目前为止 我已经使用了 TextChangedEventArgs Changes 并
  • 在 WPF 中动态生成的 DataGrid.Columns 中显示图像

    我必须从查询中转换信息数据 并根据从底层数据库读取的值显示图像 假设我的查询中有这些数据 Identifiant ProcessId AlarmLevel BOUDA25 100 1 BOUDA25 110 1 BOUDA25 130 1
  • 如何在ng-repeat中动态更新ng-model?

    我在我的角度页面中面临动态 ng model 值的一些问题 这是我的示例 JSON mytabs name tab1 values value value1 value value2 value value3 value value4 na
  • 引起原因:使用 lombok 时 java.lang.ClassNotFoundException: com.sun.tools.javac.code.TypeTags

    我在 pom xml 中有以下依赖项
  • Excel VBA ADO SQL - From 子句中的语法错误

    VBA ADO 中的以下 SQL 给出 From 子句中的语法错误 错误 Sub RunSQL2 Dim cn As ADODB Connection Dim rs As ADODB Recordset Dim strFile As Str
  • 如何编辑一篇博客文章而不是其他博客文章的 CSS 以获得 5 星级评级系统?

    我最近创建了我自己的博客使用 Google 的 Blogger 当我读完一本特定的书时 我有一个本书的我读过的部分我想要一个静态的地方5星评级系统代替某种形式 也许与CSS 我可以定位每本书 这样我就能够显示1 至 5 星供访客查看 我不知
  • 将 std::mutex 用于由 boost::asio 管理的线程池

    不知何故的后续这个问题 我只是想知道是否可以使用std mutex在由 a 处理的函数中boost asio io service 使用股线是有点不切实际的 从我在升压参考我会说没关系 既然它指出 异步完成处理程序只会从当前正在调用 io
  • 下单后如何获取盈透证券(IBPY)的交易价格和佣金?

    http interactivebrokers github io tws api 也许是一个有用的链接 这张图片来自盈透证券的java API指南 我想要的数字是交易日志中的价格和佣金 from ib opt import Connect
  • Javascript 检测用户是否更改选项卡

    我正在编写一个用于在线测验的网页 我的基本要求是 如果用户更改选项卡或打开新闻窗口 即使没有最小化其浏览器 即如果该人试图从其他窗口 选项卡查看答案 它也必须触发一个事件 停止测验 我怎样才能做到这一点 Note 尽量避免在您的答案中包含前
  • 如何让 Google Cloud Functions 保持温暖?

    我知道这可能会错过使用 Cloud Functions 的初衷 但在我的具体情况下 我使用 Cloud Functions 是因为这是我将 Next js 与 Firebase Hosting 桥接的唯一方法 我不需要使其具有成本效益 等等
  • 放大和缩小按钮 - highcharts

    我在气泡图中有自定义缩放按钮 放大 缩小 当用户单击 放大 按钮时 应该在图表中从左到右进行缩放 类似地 缩小应该以这种方式发生 这与立即发生缩小的重置缩放功能相反 小提琴链接 https jsfiddle net abcdlearner
  • 将数据发布到 colorbox iframe?

    这是我正在使用的代码 从我见过的其他例子来看 这应该有效 但事实并非如此 并且已经确保我使用的是最新的彩盒 function updateFolderCate ID Type colorbox iframe true scrolling f
  • 如何使用 System.out.printf?

    我的老师希望我们在格式方法 在最底部 中显示我们的值 但问题是我们有一个子程序 她没有向我们展示如何使用它 而且我的老师也没有提供帮助 任何建议或帮助将不胜感激 public class SphereCalculations public
  • Android 增强现实应用程序从屏幕点转换列表位置

    我有问题 找不到解决方案 我制作了一个 Android 增强现实应用程序 在我的应用程序中 我有一个兴趣点列表 每个兴趣点都是一个位置 经度 纬度 海拔 我知道我的位置并且我有 相机的 方位角 现在我的问题是 如何在屏幕上绘制这些点 gps
  • pthread_create 并传递一个整数作为最后一个参数

    我有以下功能 void foo void i int a int i int main pthread t thread int i pthread create thread 0 foo void i 编译时 存在一些关于转换的错误 vo