c语言多线编程程序,C语言之多线编程 来看看?
用進程和線程的觀點來研究軟件是當今普遍采用的方法,進程和線程的概念的出現(xiàn),對提高軟件的并行性有著重要的意義。
什么是線程
要講解線程,不得不說一下進程,進程是應用程序的執(zhí)行實例,每個進程是由私有的虛擬地址空間、代碼、數(shù)據(jù)和其它系統(tǒng)資源組成。進程在運行時創(chuàng)建的資源隨著進程的終止而死亡。線程的基本思想很簡單,它是一個獨立的執(zhí)行流,是進程內(nèi)部的一個獨立的執(zhí)行單元,相當于一個子程序,它對應于Visual C++中的CwinThread類對象。
線程的種類
線程被分為兩種:用戶界面線程和工作線程(又稱為后臺線程)。用戶界面線程通常用來處理用戶的輸入并響應各種事件和消息,其實,應用程序的主執(zhí)行線程CWinAPP對象就是一個用戶界面線程,當應用程序啟動時自動創(chuàng)建和啟動,同樣它的終止也意味著該程序的結束,進程終止。工作線程用來執(zhí)行程序的后臺處理任務,比如計算、調(diào)度、對串口的讀寫操作等,它和用戶界面線程的區(qū)別是它不用從CWinThread類派生來創(chuàng)建,對它來說重要的是如何實現(xiàn)工作線程任務的運行控制函數(shù)。
啟動線程
對于工作線程來說,啟動一個線程,首先需要編寫一個希望與應用程序的其余部分并行運行的函數(shù)如Fun1(),接著定義一個指向CwinThread對象的指針變量*pThread,調(diào)用AfxBeginThread(Fun1,param,priority)函數(shù),返回值賦給pThread變量的同時一并啟動該線程來執(zhí)行上面的Fun1()函數(shù),其中Fun1是線程要運行的函數(shù)的名字,也既是上面所說的控制函數(shù)的名字,param是準備傳送給線程函數(shù)Fun1的任意32位值,priority則是定義該線程的優(yōu)先級別,它是預定義的常數(shù)。
線程優(yōu)先
這里的優(yōu)先級,是相對于該線程所處的優(yōu)先權層次而言的,處于同一優(yōu)先權層次的線程,優(yōu)先級高的線程先運行;處于不同優(yōu)先權層次上的線程,誰的優(yōu)先權層次高,誰先運行。
總結
以上是生活随笔為你收集整理的c语言多线编程程序,C语言之多线编程 来看看?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 暴力除法C语言,暴力除法
- 下一篇: 如果一个c语言float型变量被赋予初值