Visual Studio 2010多線程編程

來源:互聯網
上載者:User

標籤:建立   java   term   als   rip   函數   規模   mutex   申請   

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

大規模叢集的出現。攻克了這一技術難題。本文旨在探討怎樣使用多CPU並行編程,關於CUDA的並行前面文章已有講述。本文結構分為三部分。第一部分給出一段代碼,類比賣火車票的程式;第二部分對程式進行解說,方便大家交流學習;第三部分給出程式結果。一、程式碼

 二、代碼解說

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

對兩個線程入口函數的申明。定義火車票的總數以及賣出火車票的index,最後建立一個全域變數用於儲存相互排斥物件控點。 

申請兩個HANDLE變數。表示線程的指標;建立相互排斥對象,三個參數分別為:安全結構指標(NULL表示預設的安全性),相互排斥對象的初始擁有者(FALSE表示沒有),相互排斥對象的名稱(NULL表示預設);最後使用CreateThread建立兩個線程,六個參數分別為:安全結構指標(NULL表示預設的安全性),設定初始棧的大小,入口函數指標。給新線程函數的參數。控制線程建立的標記(0表示建立後馬上運行),返回值用來接收線程ID;

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

線程1入口函數,進入while迴圈,首先使用WaitForSingleObject(hMutex,INFINITE)請求相互排斥對象,然後運行小兒科程式,最後釋放相互排斥對象,誰擁有相互排斥對象誰釋放,從而保證了對全域變數的同步訪問。線程2同理。

OK,本節內容解說完成!三、執行結果

Visual Studio 2010多線程編程

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.