• <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>
            隨筆 - 79  文章 - 58  trackbacks - 0
            <2025年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            常用鏈接

            留言簿(9)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊(cè)

            搜索

            •  

            積分與排名

            • 積分 - 296545
            • 排名 - 88

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            問題提出:
            ??????? 在并發(fā)訪問的時(shí)候,允許并發(fā)訪問函數(shù)A,但是當(dāng)訪問函數(shù)A時(shí)不允許訪問函數(shù)B,同樣訪問函數(shù)B時(shí)不能函數(shù)A,即兩個(gè)函數(shù)之間是互斥的.如何才能獲得訪問A時(shí)的最大性能呢?

            解決方案(1):
            ???????假設(shè)多進(jìn)程環(huán)境下,一般選用PID作為可重入的重要條件,傳統(tǒng)實(shí)現(xiàn)如下:
            ?????? void lockpid(lock* p)
            ????? {
            ???????????? if(p->pid == getpid())
            ?????????????????? return;
            ???????????? else
            ??????????? {
            ??????????????????p->lock();
            ????????????}
            ????? }
            ??????本題解決也是借鑒如此,使用整數(shù) lockv = 0;作為兩函數(shù)互斥的根本,當(dāng)lockv>0時(shí)表示正在訪問函數(shù)A,<0時(shí)表示正在訪問函數(shù)B.具體實(shí)現(xiàn)如下:
            ??????函數(shù)A()
            ??????{
            ??????????? //臨界區(qū)
            ???????????{
            ??????????????????while(lockv < 0)
            ????????????????????????usleep(1);
            ??????????????????++lockv;

            ??????????? }
            ????????????
            ??????????? //do something ...

            ?????????? //臨界區(qū)
            ???????????{
            ??????????????????--lockv;
            ??????????? }???????
            ?????? }
            ???????
            ??????函數(shù)B()
            ??????{
            ??????????? //臨界區(qū)
            ???????????{
            ??????????????????while(lockv?> 0)
            ????????????????????????usleep(1);
            ??????????????????--lockv;

            ??????????? }
            ????????????
            ??????????? //do something ...

            ?????????? //臨界區(qū)
            ???????????{
            ??????????????????++lockv;
            ??????????? }???????
            ?????? }

            ??????缺點(diǎn)很明顯的,雖然在臨界區(qū)里面只有幾個(gè)機(jī)器指令,但并不能獲得最大的性能.如何優(yōu)化才能獲得函數(shù)A的最大性能呢?

            posted on 2006-11-18 11:44 merlinfang 閱讀(345) 評(píng)論(0)  編輯 收藏 引用

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


            亚洲AV无码1区2区久久| 狠狠88综合久久久久综合网 | 欧美精品乱码99久久蜜桃| 久久乐国产综合亚洲精品| 无码人妻久久一区二区三区免费丨 | 国产午夜精品久久久久九九| 久久er国产精品免费观看8| 亚洲人成电影网站久久| 久久精品国产亚洲av麻豆小说| 99精品伊人久久久大香线蕉| 亚洲综合伊人久久大杳蕉| 精品免费久久久久国产一区| 国产成人精品综合久久久| 99久久精品费精品国产| 无码精品久久久久久人妻中字| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 91精品日韩人妻无码久久不卡| 日本精品久久久久影院日本| 久久伊人精品青青草原高清| 久久九九兔免费精品6| 久久精品国产精品亜洲毛片| 国产精品久久久久AV福利动漫 | 综合久久久久久中文字幕亚洲国产国产综合一区首 | 久久超乳爆乳中文字幕| 久久久亚洲裙底偷窥综合| 久久国产香蕉视频| 91超碰碰碰碰久久久久久综合| 国产午夜精品久久久久免费视| 香港aa三级久久三级老师2021国产三级精品三级在 | 四虎国产永久免费久久| 91精品国产综合久久精品| 少妇久久久久久久久久| 国产精品99久久久精品无码| 中文字幕精品久久| 精品国产日韩久久亚洲| 久久久久亚洲AV无码观看| 狠狠色丁香久久婷婷综合蜜芽五月 | 久久国产亚洲精品麻豆| 91精品国产91久久综合| 一本大道久久a久久精品综合 | 国产成人无码久久久精品一|