• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 55  文章 - 15  trackbacks - 0
            <2012年3月>
            26272829123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

                  多線程對于現在的編程來說已經很普遍了,但是對于我來說還是一個比較新的東西。之前只是了解了c++的基礎知識,并且都是基于單任務的。雖然之前對多線程也略有耳聞,但是理解的不深,現在提前看到這一章,把自己學到的知識列舉一下。一來是總結一下,看自己是否真的了解了,二來是對新學習多線程的同學有所幫助。
                  并發的概念:把一個程序分割成若干個分開的、獨立運行的子程序。有點類似彈鋼琴,串行的方法是只用一個手指頭彈奏,并行的方法是十個手指頭一起彈,這中間就牽扯到協作和互斥。
                 編寫并發程序其實就是在不同線程中間協調對資源的使用。就是讓你的十個手指頭知道該彈哪個鍵,大家分配好了,就能彈奏出美妙的曲子來了。
                 并發編程很難,就像學彈琴一樣。好吧,我不彈琴,突然想起來,就像打字一樣。
                 稍稍舉個例子吧。現在你要在屏幕上打印一行“asdf jk;l "字符串,如果用一個手指頭敲的話,你可能會用10s的時間,如果你用10個手指頭敲的話,并且協調好這十個手指頭,那么可能2s鐘就完成了。
                 你可以采取策略保證打印的順序,不然,你打印出來的可能是”jkdsl;a  "。這就要線程間的協作了。
                 除了用并發看起來比串行快一些之外,另一個好處就是可以產生一個可做出響應的界面,還有,優化信息的吞吐量。
                 多線程:CPU的小把戲,分配時間片給不同的線程,欺騙你的大腦。

                 希望能對多線程有個大致的了解。

            C++中的并發
                   C++標準并不支持多線程(并發),所以你看不到標準庫中有多線程庫。為了學習多線程就要自己找一些庫。不過所幸,基本上所有的庫對于多線程的處理方法是類似的。那就按本書中示例的ZThread來學習吧。

            ZThread的下載:
            http://zthread.sourceforge.net
            ZThread的安裝:
            書上寫的是Linux下的安裝,我用的VS2008, 也是在網上查到的方法。
            首先,下載下來源文件,

            1. 創建一個Win32 Project,寫上名字,OK
            2. 彈出來一個對話框,在Application Setting里面的Application type里面學則Static library,Finish
            3. 右鍵點擊工程,點Properties, 在Configuration Properties-〉C++->Additional Include Directories 中選擇ZThread-2.3.2\ZThread-2.3.2\include
            4. 右鍵點擊Source Files,將ZThread-2.3.2\ZThread-2.3.2\src中的cxx文件全部添加進去
            5.因為vs2008默認使用unicode,編譯時會在如下代碼處出現錯誤:
            HINSTANCE hInst = ::GetModuleHandle(“Kernel32.dll");
            修改成如下代碼:
                    
            HINSTANCE hInst = ::GetModuleHandle(L“Kernel32.dll"); 

            6. 編譯成功的話,那就把該.lib文件拷貝到C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib中去
            7. 新建一個工程,右鍵點擊工程屬性,在Linker->input->Addtional Dependencies 中添加剛剛的.lib文件,至此,就可以用ZThread庫了。

            ok,這一章就先到此吧,下一次了解一下線程的創建,以及ZThread庫中給我們帶來的簡化工具。

            史蒂芬森地方
            posted on 2012-05-14 18:03 Dino-Tech 閱讀(769) 評論(0)  編輯 收藏 引用
            亚洲国产成人精品久久久国产成人一区二区三区综 | 婷婷久久久亚洲欧洲日产国码AV| 久久亚洲高清综合| 久久精品国产亚洲AV无码麻豆| 94久久国产乱子伦精品免费| 欧美亚洲国产精品久久| 精品久久8x国产免费观看| 久久夜色精品国产| 久久精品国产精品青草app| 久久午夜福利无码1000合集| 久久99精品国产一区二区三区| 久久久久久无码国产精品中文字幕| 午夜精品久久久久| 精品久久久无码中文字幕天天| 99精品久久精品一区二区| 久久久久久亚洲精品不卡| 精品久久久久香蕉网| 香蕉久久夜色精品国产尤物| 成人午夜精品久久久久久久小说| 亚洲精品乱码久久久久久蜜桃图片| 国产一区二区精品久久凹凸| 国产精品天天影视久久综合网| 色婷婷久久综合中文久久一本| 中文字幕亚洲综合久久2| 国产精品福利一区二区久久| 久久精品aⅴ无码中文字字幕不卡 久久精品成人欧美大片 | 国产精品成人久久久久久久| 人妻无码久久一区二区三区免费| 久久天天日天天操综合伊人av| 四虎国产永久免费久久| 久久精品视频网| 91精品无码久久久久久五月天| 久久天天躁狠狠躁夜夜躁2O2O| 人人狠狠综合久久88成人| 国产V综合V亚洲欧美久久| 久久精品www| 九九久久精品无码专区| 久久久这里有精品中文字幕| 亚洲国产精品无码久久久久久曰| 中文字幕精品久久久久人妻| 97精品伊人久久久大香线蕉|