Win32多執行緒程式設計 序

2022-09-18 05:06:31 字數 1360 閱讀 2113

程式是乏味的代言人,程式世界是如此的單調,上帝說,讓世界變的精彩,從此有了多執行緒程式設計

從第一台計算機出現開始,順序程式設計就開始深入人心,將任務劃分為乙個流程,交給計算機去做,一切都那麼理所當然,程式世界就像乙個黑白的世界,井然有序卻又單調乏味,多執行緒多工程式設計理念的提出,讓程式世界開始變的五彩繽紛,精彩卻也引入了很多可能導致混亂的因素。

多執行緒程式設計是乙個設計技巧而不是乙個程式設計技巧,是和單執行緒順序程式設計並列的兩個分支,多執行緒多工使程式的效率得以高度發揮

1)      改善使用者對軟體操作的感受

2)      使同一時間的一台伺服器上提供對成百上千使用者的支援

使用者只是知曉其效果,而我們程式設計師要思考的是如何設計乙個程式才能達到這樣的效果,多執行緒是提供給我們得以達到此目的的法寶

多執行緒,使程式得以將其工作分開,獨立運作,不互相影響

1.合作式多工和搶先式多工

1)      合作式多工系統

windows前三個版本是乙個基於合作式多工的作業系統,合作式多工需要從兩方面進行理解

a)       多工

多工是指系統允許同時執行多個程式,這對單任務系統來說是乙個大的飛躍

b)      合作式

當同時執行多個任務時,多個任務之間需要分享cpu,合作式是指分享cpu的責任是程式的責任而不是作業系統的責任,這樣程式就有權拒絕與其他程式分享cpu,進一步    來說,合作式多工系統中多個任務之間如何分享cpu是程式設計師的責任,程式設計師需要在設計程式之初就要考慮如何分配cpu的控制權,稍有不慎就有可能導致某乙個程式得不到執行的機會。

2)      搶先式多工系統

從windows nt開始,windows系統開始是乙個基於搶先式多工的作業系統,我們搶先式多工系統也從兩個方面進行討論

a)       多工

同上b)      搶先式

搶先式的意思是作業系統負責cpu使用權的分配,強迫應用程式把cpu分享給其他人,並在任務切換時承擔"切換任務時所需的狀態儲存和恢復"的責任,程式設計師不負責cpu的分配,這樣程式設計師就不用絞盡腦汁思考如何在多個任務中分配cpu的控制權了

注:搶先式多工 多執行緒如此的重要,是windows 4.0開始的標誌,以後每次版本的更新,這兩個的地位從此不可動搖。

2.為什麼多執行緒在程式設計中是如此的重要

1)      伺服器程式需要用多執行緒設計

毋庸置疑

2)      使用者程式設計需要用多執行緒程式設計

當使用者程式連線到乙個忙碌的伺服器時,使用者程式只能懸在那裡一動不動直到伺服器完成所有操作,程式設計師無法改善這個局面,因為控制權在伺服器那端,但如果使用者程式有多個執行緒,那麼當乙個執行緒必須停下來等待與伺服器連線時,其他執行緒還可以繼續動作,如ui執行緒可以持續有反應(乙個永遠有反應的ui是極其重要的)

win32多執行緒程式設計

使用3個執行緒完成6個任務,工作的執行是靠呼叫sleep 來模擬,時間長度是隨機給予的,只要乙個執行緒結束,就會有另乙個執行緒被產生。taskques.cpp 定義控制台應用程式的入口點。include stdafx.h include include include define win32 le...

Win32 多執行緒程式設計

程序和執行緒都是作業系統的概念 程序是應用程式的執行例項 每個程序是由私有的虛擬位址空間 資料和其它各種系統資源組成 程序在執行過程中建立的資源隨著程序的終止而被銷毀 所使用的系統資源在程序終止時被釋放或關閉 執行緒是程序內部的乙個執行單元 系統建立好程序後 實際上就啟動執行了該程序的主執行執行緒 ...

Win32多執行緒程式設計 一

1.程序 從win32的角度來看,程序就是一大堆物件的擁有權的集合,程序擁有的物件包括記憶體和資源兩類 程序擁有的記憶體 被程序擁有的記憶體可以分為以下三個型別 1 code code是程式的可執行部分,一定是唯讀性質 2 data data是程式中的所有變數 不包括函式中的區域性變數 可以分為全域...