多執行緒程式設計應用技術

2022-10-17 16:00:34 字數 1811 閱讀 2811

一.執行緒的基本概念

執行緒(thread)一詞最早是二十世紀60年代。當時還沒有現代意義上的計算機作業系統。有專家設想了一種未來的由多個cpu所構成的計算機系統可同時進行多個不同的計算。

在計算之前,將乙個較為複雜的計算分解為多個序列和並行的計算單元,然後讓每個cpu同時處理乙個平行計算單元計算過程,在達到某個時刻的時候,所有的平行計算單元的結果都可以肯定得到,從而為下乙個序列計算作好準備。這樣的多cpu計算機系統的計算速度要大大的高於單cpu結構的計算機系統。而當時的研究人員為每個平行計算單元找到了乙個詞彙—執行緒。

真正意義上實現執行緒概念的作業系統是2023年推出sun公司的

⒈執行緒的定義和屬性

相對於現代計算機作業系統中程序(process)概念,計算機學科對執行緒的定義是共享同一程序所擁有的儲存器、檔案系統、i/o裝置等資源並具備獨立使用cpu資源完成乙個規定計算的處理過程的計算機指令系統。執行緒有著如下的特點:

·並行—在多cpu系統中每個執行緒可同時各自占用乙個cpu資源;在單cpu系統中由其歸屬程序事先規定好每個執行緒占用cpu資源的時間片,由作業系統對其進行cpu時間片輪循控制。

·三態變化—除了等待cpu資源狀態之外,執行緒可以被其歸屬程序設定為掛起和擊活狀態。

·執行緒屬性—以物件導向的概念去解釋執行緒可有下述屬性:

―執行緒號(thread id);

―暫存器狀態(包括程式計數器和堆疊指標);

―堆疊;

―訊號掩碼(signal mask);

―優先順序(priority);

―執行緒私有的儲存段(thread-private storage);

⒉共享程序資源的排程策略

由於執行緒可以共享程序的執行**和大部分資料,共享資料被乙個執行緒修改之後,歸屬該程序的其他執行緒是可以知道的。利用此特性,當歸屬乙個程序的兩個以上執行緒彼此間進行通訊的時候,可以不經過作業系統的幫助。這樣,可以避免或極大的減少與核心之間的互相切換(即虛擬交換的),從而大大提高程式的處理效率。

乙個程序占用核心資源的規模與其開設的執行緒數目無關。

當然乙個程序對屬於自身的執行緒應在種類和數量兩方面進行管理。同類執行緒數量的過大會造成cpu的過負荷狀態的發生。種類的過多會造成程序對執行緒排程處理的開銷過大。

於是人們想出了乙個管理方案,將某一類執行緒事先與其有關的系統資源繫結,並將其置於乙個執行緒庫內,呼叫時便到該執行緒庫查詢,從而大大降低了執行緒排程的管理開銷。因此又將此類結構的執行緒稱為輕程序(lightweight porcesses或lwp)。

二.mfc多執行緒程式設計技術

⒈mfc執行緒分類

①輔助線程(worker thread)

輔助線程不支援windows的訊息機制,通常用來執行後台計算或維護任務。

②使用者介面執行緒(user inte***ce thread)

使用者介面執行緒支援windows的訊息機制,可用來處理使用者的輸入,響應歸屬程序產生的事件和訊息。

⒉主線程與歸屬執行緒設計要點

windows作業系統中每個程序都有乙個主線程,隨程序起動時獲得其所需要的資源。在其歸屬執行緒工作期間的大部分時間內,可以代替程序對其他執行緒進行排程和管理。winapp類物件就是主線程的歸宿,其他歸屬則由程式設計師設計。

設計歸屬執行緒時要主要下述要點:

①由於不少視覺化物件多數都是按乙個歸屬執行緒設計安排的,其成員的動態工作位址不是固定的,因此**程訪問這些物件(成員資料、成員函式)時不要直接使用物件指標,而是應通過其控制代碼值在獲得其當時的位址。

②在單cpu處理機中除錯多執行緒應用時,應為每個歸屬執行緒安排足夠的cpu休眠時間,以保證輪循能正常展開。

③對非繫結執行緒要設定事件物件,以使程序能夠隨意控制其執行狀態。

⒊mfc執行緒類與api函式簡介

⒋mfc執行緒與資源的同步技術

多執行緒程式設計練習

實驗五 多執行緒程式設計練習 一 課堂範例的驗證 二 打字遊戲 三 實現書本上128頁上的練習6,7,8 至少3者選1 6.實現多執行緒互斥的方法 lock monit mutex和semaphores 1 lock關鍵字 將某語句塊標記為臨界區,確保該執行緒位於臨界區時,另乙個執行緒不得進入該臨界...

多核程式設計技術 通過軟體多執行緒提公升效能

作者簡介 shameem akhter是intel公司的一名平台結構師,主要從事單插槽多核體系結構和效能分析的研究和實現工作。他曾經是inter軟體和解決方案小組的一名資深軟體工程師,負責面向桌面和伺服器平台的應用程式的優化設計。shameem獲得了一項關於面向受限程式的優化設計的多執行緒介面的專利...

PLC程式設計與應用技術》課程標準

60學時 2周 一 概述 一 課程性質 本課程是高等職業教育數控技術專業核心教學與訓練專案課程 電氣控制技術基礎 的重要組成模組之一,是一門實踐性很強的理論實踐一體化課程。本課程以傳統的繼電器 接觸器控制系統作為前期基礎課程,通過本課程的學習,掌握使用plc解決實際控制問題的方法,並為後續的較複雜的...