繁体   English   中英

使用Win 32 API创建并行线程

[英]Creating parallel threads using Win 32 API

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

1)在Win 32 API中创建线程

2)传递输入参数

3)获取返回值。

提前致谢!

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

好吧,您问题的答案是CreateProcessGetExitCodeProcess

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM