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

            天下

            記錄修行的印記

            用volatile實(shí)現(xiàn)狀態(tài)機(jī)的一點(diǎn)想法


            線程A:運(yùn)行在主界面,可以進(jìn)入管理界面,進(jìn)行日常的操作,
            比如說(shuō)登記用戶,導(dǎo)入導(dǎo)出用戶,產(chǎn)生驗(yàn)證記錄!恢復(fù)出廠設(shè)置!

            線程B:運(yùn)行一個(gè)socket客戶端任務(wù),
            1.將A線程產(chǎn)生的數(shù)據(jù)上傳至服務(wù)器!
            2.接受并處理來(lái)自服務(wù)端的命令/請(qǐng)求!,如,設(shè)置用戶,清除數(shù)據(jù),清除驗(yàn)證記錄等.

            典型的思路,在處理用戶數(shù)據(jù)的時(shí)候,就用Mutex鎖就可以!

            在這里嘗試用兩個(gè)volatile變量處理,處理各種狀態(tài)機(jī)!

            volatile bool bDeviceBusy = false; //設(shè)備是否忙!
            volatile bool bInManagerMenu = false; //是否在管理菜單中

            void SetDeviceBusy(bool bBusy);
            void SetInManagerMenu(bool bBusy);

            場(chǎng)景1:
            1.線程B如要設(shè)置用戶數(shù)據(jù),可以先鎖定設(shè)備SetDeviceBusy(true),視情況可考慮并sleep(n)一下.
            2.線程A在主界面的循環(huán)中,判斷bDeviceBusy的值,如果為true,則在主界面上顯示"工作中...",并且鎖定設(shè)備,不能進(jìn)入其他任何操作!
            3.線程B設(shè)置用戶數(shù)據(jù)完成之后,調(diào)用SetDeviceBusy(false),
            4.線程A在主界面的循環(huán)中,判斷bDeviceBusy的值,如果為false,解鎖設(shè)備,使設(shè)備正常工作!

            場(chǎng)景2:
            1.線程A進(jìn)入了管理菜單,進(jìn)行用戶數(shù)據(jù)的設(shè)置,如,恢復(fù)出廠設(shè)置時(shí),可以先SetInManagerMenu(true)
            2.線程B在線程的循環(huán)中,判斷bInManagerMenu的值,如果為true,則不處理大部分的事務(wù),如果有網(wǎng)絡(luò)命令,直接應(yīng)答設(shè)備忙.
            3.線程A操作完成之后,調(diào)用SetInManagerMenu(false),
            4.線程B在線程的循環(huán)中,判斷bInManagerMenu的值,如果為false,繼續(xù)處理來(lái)自服務(wù)端的命令/請(qǐng)求!


            優(yōu)化方案:
            通過(guò)一個(gè)變量的狀態(tài)來(lái)實(shí)現(xiàn).
            //volatile int device_status = -1;

            posted on 2013-02-26 17:03 天下 閱讀(298) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): Linux編程

            <2013年2月>
            272829303112
            3456789
            10111213141516
            17181920212223
            242526272812
            3456789

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(4)

            隨筆分類(lèi)(378)

            隨筆檔案(329)

            鏈接

            最新隨筆

            搜索

            最新評(píng)論

            91性高湖久久久久| 欧美亚洲国产精品久久| 久久―日本道色综合久久| 伊人久久免费视频| 久久精品中文字幕一区| 精品无码久久久久久尤物| 国产福利电影一区二区三区,免费久久久久久久精 | 久久最新免费视频| 日本久久久久亚洲中字幕| 久久综合狠狠综合久久激情 | 97精品伊人久久大香线蕉| 久久精品国产亚洲AV无码娇色 | 伊人久久大香线焦AV综合影院 | A狠狠久久蜜臀婷色中文网| 精品水蜜桃久久久久久久| 亚洲人成精品久久久久| 99久久99久久精品国产| 亚洲中文字幕无码久久精品1| 一本色道久久88加勒比—综合| 精品久久久中文字幕人妻| 久久精品国产99国产精品| 久久精品人人做人人妻人人玩| 久久99热这里只频精品6| 国产精品久久久久乳精品爆| 久久永久免费人妻精品下载| 色综合久久天天综线观看| 91麻豆精品国产91久久久久久| 国产三级久久久精品麻豆三级| 久久亚洲AV成人无码软件| 欧美麻豆久久久久久中文| 国产高潮久久免费观看| 久久精品国产99国产电影网| 国产成人精品白浆久久69| 久久久久亚洲Av无码专| 国产精品无码久久综合| 国产精品久久波多野结衣| 国产亚洲综合久久系列| 国产一久久香蕉国产线看观看| 久久久久久午夜成人影院| 99久久久国产精品免费无卡顿| 国内精品九九久久久精品|