• <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>

            勤能補(bǔ)拙,Expter

            成都游戲Coder,記錄游戲開發(fā)過程的筆記和心得!

            一個(gè)關(guān)于vector在讀取和壓入技巧性的效率優(yōu)化

                     在多線程過程中,對(duì)于線程間的數(shù)據(jù)共享同步問題,具體針對(duì)多線程需要對(duì)一個(gè)Vector進(jìn)行讀與寫的操作,不考慮緩沖區(qū)的操作,一般情況下為了保證穩(wěn)定性的同時(shí)在讀寫的時(shí)候都要進(jìn)行加鎖,其實(shí)可以通過一個(gè)技巧,就是通過一個(gè)臨時(shí)變量在寫數(shù)據(jù)的時(shí)候把第一個(gè)值付給臨時(shí)變量,那么在讀取數(shù)據(jù)的線程中會(huì)直接讀取臨時(shí)變量,此時(shí)只需要加鎖一次即可。



                     我寫了一個(gè)測(cè)試?yán)樱褪顷P(guān)于開3個(gè)讀,寫,刪的操作。。。一般情況進(jìn)行加鎖,與通過通過臨時(shí)變量來減少一次加鎖速度與效率明顯低于后者。
                     針對(duì)1000000個(gè)數(shù)據(jù)的操作,操作1比操作2快2倍以上。


                     下面是我的測(cè)試代碼,簡(jiǎn)單。。。只是為了說明問題
                     
            /Files/expter/l_thread.rar
                    

            posted on 2009-08-14 23:52 expter 閱讀(2234) 評(píng)論(5)  編輯 收藏 引用

            評(píng)論

            # re: 一個(gè)關(guān)于vector在讀取和壓入技巧性的效率優(yōu)化 2009-08-15 01:47 pear_li

            說實(shí)話,樓主這個(gè)想法不怎么樣
            看過你的代碼就更加確信了這一想法
            理由如下:
            既然要滿足讀寫,就要考慮讀寫值的實(shí)時(shí),臨時(shí)變量本身就不能確保當(dāng)前讀寫值的實(shí)時(shí)性(且不說樓主對(duì)tmp和flag的操作連最基本的volatile都沒有加),你的想法只是考慮變量讀寫的安全性,而忽略實(shí)時(shí)性

            公認(rèn)比較安全快速的做法:使用共享鎖,提高讀取效率

              回復(fù)  更多評(píng)論   

            # re: 一個(gè)關(guān)于vector在讀取和壓入技巧性的效率優(yōu)化 2009-08-15 06:38 空明流轉(zhuǎn)

            樓主的思路,和Lock-free有點(diǎn)接近,建議去參考一下。。。  回復(fù)  更多評(píng)論   

            # re: 一個(gè)關(guān)于vector在讀取和壓入技巧性的效率優(yōu)化 2009-08-15 16:42 expter

            @pear_li
            我只是 為了說明這樣一個(gè)方法,可能在有些地方效率會(huì)更低,而且程序我只是一個(gè)為了測(cè)試而已,估計(jì)沒有考慮跟多,謝謝指出。  回復(fù)  更多評(píng)論   

            # re: 一個(gè)關(guān)于vector在讀取和壓入技巧性的效率優(yōu)化 2009-08-15 16:53 李侃

            同意2樓,共享資源傳統(tǒng)的方式最好使用共享鎖和排他鎖,分而治之,可以參考讀寫鎖的實(shí)現(xiàn)方法win32下單進(jìn)程內(nèi)建議使用用戶模式,interlock系列函數(shù)足以

            鎖無關(guān)數(shù)據(jù)結(jié)構(gòu)我還沒找到很好的解決方案  回復(fù)  更多評(píng)論   

            # re: 一個(gè)關(guān)于vector在讀取和壓入技巧性的效率優(yōu)化 2009-08-20 21:28 hlysh

            常常關(guān)注你的blog,每篇文章都很好支持!  回復(fù)  更多評(píng)論   


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久亚洲高清综合| 久久久无码一区二区三区| 久久电影网2021| 国产精品久久久久无码av| 青草影院天堂男人久久| 四虎影视久久久免费观看| 日韩人妻无码精品久久免费一| 国内精品人妻无码久久久影院| 大美女久久久久久j久久| 久久亚洲精品无码VA大香大香| 91久久精品91久久性色| 无码人妻少妇久久中文字幕| 国产精品久久久久久吹潮| 中文字幕亚洲综合久久菠萝蜜| 久久精品麻豆日日躁夜夜躁| 亚洲人成无码网站久久99热国产 | 久久人爽人人爽人人片AV| 国内精品免费久久影院| 久久精品中文騷妇女内射| 久久久久综合中文字幕| 久久久91精品国产一区二区三区| 久久AV高潮AV无码AV| 久久伊人亚洲AV无码网站| 国产成人久久777777| A狠狠久久蜜臀婷色中文网| 久久人做人爽一区二区三区| 欧美成a人片免费看久久| 精品水蜜桃久久久久久久| 久久精品成人免费看| 国产精品一区二区久久| 午夜天堂av天堂久久久| 久久午夜福利无码1000合集| 亚洲午夜久久久| 久久久久人妻一区二区三区| 亚洲国产日韩欧美综合久久| 欧洲性大片xxxxx久久久| 色婷婷噜噜久久国产精品12p| 久久精品国产清自在天天线| 久久久久免费视频| 久久久久久综合网天天| 久久天天躁狠狠躁夜夜躁2O2O|