c++builder多線程編程技術(shù)實(shí)現(xiàn)生產(chǎn)者-消費(fèi)者問(wèn)題.doc
約5頁(yè)DOC格式手機(jī)打開展開
c++builder多線程編程技術(shù)實(shí)現(xiàn)生產(chǎn)者-消費(fèi)者問(wèn)題,c++builder多線程編程技術(shù)實(shí)現(xiàn)生產(chǎn)者-消費(fèi)者問(wèn)題全文5頁(yè)3578字?jǐn)⑹鲈敱M摘要:本文簡(jiǎn)單介紹了windows環(huán)境下進(jìn)行多線程編程的意義,重點(diǎn)討論了c++builder環(huán)境下開發(fā)多線程應(yīng)用程序這一問(wèn)題,并通過(guò)實(shí)現(xiàn)生產(chǎn)者-消費(fèi)者問(wèn)題,幫我們更好地理解同步概念及其實(shí)現(xiàn)方法。關(guān)鍵詞:多線程;同步;生產(chǎn)者-消費(fèi)者;c++...
內(nèi)容介紹
此文檔由會(huì)員 空空兒 發(fā)布
C++Builder多線程編程技術(shù)實(shí)現(xiàn)生產(chǎn)者-消費(fèi)者問(wèn)題
全文5頁(yè)3578字 敘述詳盡
摘 要:本文簡(jiǎn)單介紹了Windows環(huán)境下進(jìn)行多線程編程的意義,重點(diǎn)討論了C++Builder環(huán)境下開發(fā)多線程應(yīng)用程序這一問(wèn)題,并通過(guò)實(shí)現(xiàn)生產(chǎn)者-消費(fèi)者問(wèn)題,幫我們更好地理解同步概念及其實(shí)現(xiàn)方法。
關(guān)鍵詞:多線程;同步;生產(chǎn)者-消費(fèi)者;C++Builder
1 線程之可行性
在很多情況下,可能需要為程序創(chuàng)建線程。這里給出其中一些可能性:
(1)如果創(chuàng)建的是一個(gè)多文檔接口(Multiple Document Interface,MDI)程序,那么為每個(gè)窗口分配一個(gè)線程就顯得十分重要了,例如,對(duì)于一個(gè)通過(guò)多個(gè)Modem同時(shí)連接到多個(gè)主機(jī)的MDI通信程序而言,如果每個(gè)窗口都有它自己的線程來(lái)和一個(gè)主機(jī)通信,那么整個(gè)事情就簡(jiǎn)化很多。
(2)如果使用的是一臺(tái)有多個(gè)處理器的機(jī)器,并希望充分利用所有可能獲得的CPU資源,那么就需要將應(yīng)用程序分解成多個(gè)線程。Windows2000中CPU的劃分單位為線程。因此,如果程序只包含一個(gè)線程,那么,默認(rèn)環(huán)境下該程序只能使用其中一個(gè)CPU。但是,如果將此程序劃分為多個(gè)線程,那么Windows2000就可以在不同的CPU上運(yùn)行各個(gè)線程。
(3)在后臺(tái)運(yùn)行的某些任務(wù)的同時(shí),要求用戶還可以繼續(xù)使用應(yīng)用程序進(jìn)行工作。利用線程很容易實(shí)現(xiàn)這點(diǎn)。例如:可以將一些冗長(zhǎng)的重算、頁(yè)面格式化操作、文件的讀寫等活動(dòng)都放在單獨(dú)的線程中,使其在后臺(tái)運(yùn)行,而不會(huì)對(duì)用戶造成影響。
參考文獻(xiàn)
1. 李幼儀,甘志.C++Builder高級(jí)應(yīng)用開發(fā)指南.清華大學(xué)出版社,2002
2. 朱時(shí)銀,馬承志,楊飛,王華等.C++Bulider5編程實(shí)例與技巧.機(jī)械工業(yè)出版社,2001
3. Jim Beveridge&Robert Wiener著,侯捷譯.Win32多線程程序設(shè)計(jì).華中科技大學(xué)出版社2002
4. 湯子瀛,哲風(fēng)屏,湯小丹.計(jì)算機(jī)操作系統(tǒng).西安電子科技大學(xué)出版社,2000
全文5頁(yè)3578字 敘述詳盡
摘 要:本文簡(jiǎn)單介紹了Windows環(huán)境下進(jìn)行多線程編程的意義,重點(diǎn)討論了C++Builder環(huán)境下開發(fā)多線程應(yīng)用程序這一問(wèn)題,并通過(guò)實(shí)現(xiàn)生產(chǎn)者-消費(fèi)者問(wèn)題,幫我們更好地理解同步概念及其實(shí)現(xiàn)方法。
關(guān)鍵詞:多線程;同步;生產(chǎn)者-消費(fèi)者;C++Builder
1 線程之可行性
在很多情況下,可能需要為程序創(chuàng)建線程。這里給出其中一些可能性:
(1)如果創(chuàng)建的是一個(gè)多文檔接口(Multiple Document Interface,MDI)程序,那么為每個(gè)窗口分配一個(gè)線程就顯得十分重要了,例如,對(duì)于一個(gè)通過(guò)多個(gè)Modem同時(shí)連接到多個(gè)主機(jī)的MDI通信程序而言,如果每個(gè)窗口都有它自己的線程來(lái)和一個(gè)主機(jī)通信,那么整個(gè)事情就簡(jiǎn)化很多。
(2)如果使用的是一臺(tái)有多個(gè)處理器的機(jī)器,并希望充分利用所有可能獲得的CPU資源,那么就需要將應(yīng)用程序分解成多個(gè)線程。Windows2000中CPU的劃分單位為線程。因此,如果程序只包含一個(gè)線程,那么,默認(rèn)環(huán)境下該程序只能使用其中一個(gè)CPU。但是,如果將此程序劃分為多個(gè)線程,那么Windows2000就可以在不同的CPU上運(yùn)行各個(gè)線程。
(3)在后臺(tái)運(yùn)行的某些任務(wù)的同時(shí),要求用戶還可以繼續(xù)使用應(yīng)用程序進(jìn)行工作。利用線程很容易實(shí)現(xiàn)這點(diǎn)。例如:可以將一些冗長(zhǎng)的重算、頁(yè)面格式化操作、文件的讀寫等活動(dòng)都放在單獨(dú)的線程中,使其在后臺(tái)運(yùn)行,而不會(huì)對(duì)用戶造成影響。
參考文獻(xiàn)
1. 李幼儀,甘志.C++Builder高級(jí)應(yīng)用開發(fā)指南.清華大學(xué)出版社,2002
2. 朱時(shí)銀,馬承志,楊飛,王華等.C++Bulider5編程實(shí)例與技巧.機(jī)械工業(yè)出版社,2001
3. Jim Beveridge&Robert Wiener著,侯捷譯.Win32多線程程序設(shè)計(jì).華中科技大學(xué)出版社2002
4. 湯子瀛,哲風(fēng)屏,湯小丹.計(jì)算機(jī)操作系統(tǒng).西安電子科技大學(xué)出版社,2000