0

这是问题所在:我有两个被描述为三元组向量的稀疏矩阵。任务是使用 Win 32 API 的并行处理为它们编写乘法函数。所以我需要知道我该怎么做:

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

2) 为其传递输入参数

3) 获取返回值。

提前致谢!

编辑:“进程”更改为“线程”

4

1 回答 1

1

嗯,你的问题的答案是CreateProcessGetExitCodeProcess

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

如果您必须直接将 Win32 API 用于线程,则该过程类似于:

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

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

于 2013-05-18T16:01:52.403 回答