Visual Studio 2010多執行緒程式設計

2021-09-07 14:06:08 字數 852 閱讀 8687

隨著處理資料量的逐漸增大,序列單核的程式,宛如殘燈缺月,無法滿足運用需求。

大規模集群的出現。攻克了這一技術難題。本文旨在**怎樣使用多cpu並行程式設計,關於cuda的並行前面文章已有講述。本文結構分為三部分。第一部分給出一段**,模擬賣火車票的程式;第二部分對程式進行解說,方便大家交流學習;第三部分給出程式結果。

一、程式**

二、**解說

本程式運用兩個執行緒對100張票進行售賣,為了保證同步。使用了相互排斥物件。

對兩個執行緒入口函式的申明。定義火車票的總數以及賣出火車票的index,最後建立乙個全域性變數用於儲存相互排斥物件控制代碼。

申請兩個handle變數。表示執行緒的指標;建立相互排斥物件,三個引數分別為:安全結構指標(null表示預設的安全性),相互排斥物件的初始擁有者(false表示沒有),相互排斥物件的名稱(null表示預設);最後使用createthread

建立兩個執行緒,六個引數分別為:安全結構指標(null表示預設的安全性),設定初始棧的大小,入口函式指標。給新執行緒函式的引數。控制線程建立的標記(0表示建立後馬上執行),返回值用來接收執行緒id;

關閉新執行緒的控制代碼,但沒有終止建立的執行緒;然後休眠400毫秒;

執行緒1入口函式,進入while迴圈,首先使用waitforsingleobject

(hmutex

,infinite

)請求相互排斥物件,然後執行小兒科程式,最後釋放相互排斥物件,誰擁有相互排斥物件誰釋放,從而保證了對全域性變數的同步訪問。執行緒2同理。

ok,本節內容解說完成!

三、執行結果

物件導向部分 201

小夥伴們,還在為不知道怎麼下手而頭疼嗎,我們程式競賽協會來幫你們啦 啦啦啦。另外,如果有對程式設計含有濃厚興趣的同學,我們隨時歡迎你們的加入喲 策劃 譚兆飛 程式設計 管懷文 協助 一號人員要求給她打碼 乾脆二號也打碼好了o o 其實只是提供了題目啦 物件導向部分 201 include inclu...

2 01揹包問題

有 nn 件物品和乙個容量是 vv 的揹包。每件物品只能使用一次。第 ii 件物品的體積是 vivi,價值是 wiwi。求解將哪些物品裝入揹包,可使這些物品的總體積不超過揹包容量,且總價值最大。輸出最大價值。輸入格式 第一行兩個整數,n,vn,v,用空格隔開,分別表示物品數量和揹包容積。接下來有 n...

2 01揹包問題

有 nn 件物品和乙個容量是 vv 的揹包。每件物品只能使用一次。第 ii 件物品的體積是 vivi,價值是 wiwi。求解將哪些物品裝入揹包,可使這些物品的總體積不超過揹包容量,且總價值最大。輸出最大價值。第一行兩個整數,n,vn,v,用空格隔開,分別表示物品數量和揹包容積。接下來有 nn 行,每...