簡體   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