gpt4 book ai didi

c++ - 使用 Win32 API 创建并行线程

转载 作者:行者123 更新时间:2023-11-28 07:36:53 31 4
gpt4 key购买 nike

问题来了:我有两个描述为三元组 vector 的稀疏矩阵。任务是使用 Win 32 API 并行处理为它们编写乘法函数。所以我需要知道我该如何:

1) 在 Win 32 API 中创建一个线程

2) 为其传递输入参数

3) 获取返回值。

提前致谢!

编辑:“线程”的“进程”已更改

最佳答案

那么,您的问题的答案是 CreateProcessGetExitCodeProcess

但是您的问题的解决方案根本不是另一个进程,而是更多的线程。与创建您自己的线程相比,OpenMP 可能是一种更合适的机制。

如果必须直接对线程使用 Win32 API,过程类似于:

  • 通过分配一些内存、存储指向实际数据的指针、该线程将要处理的内容的索引等来构建工作项描述符。使用结构来保持组织有序。
  • 调用CreateThread并传递工作项描述符的地址。
  • 在您的线程过程中,将指针转换回结构指针,访问您的工作项描述符,并处理数据。
  • 在您的主线程中,调用 WaitForMultipleObjects 加入工作线程。

为了获得更高的效率,您可以使用 Windows 线程池并调用 QueueUserWorkItem。但是,虽然您不必自己创建线程,但您需要事件句柄将任务连接回主线程。这与我怀疑的代码量大致相同。

关于c++ - 使用 Win32 API 创建并行线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16626228/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com