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

            国产精品成人久久久久三级午夜电影| 国产精品久久久久蜜芽| 99久久超碰中文字幕伊人| 日产精品99久久久久久| 久久久久久a亚洲欧洲aⅴ| 蜜臀久久99精品久久久久久 | 无码超乳爆乳中文字幕久久 | 2021久久国自产拍精品| 国产V综合V亚洲欧美久久| 国产高潮久久免费观看| 国内精品伊人久久久久777| 婷婷综合久久狠狠色99h| 伊人久久大香线蕉综合5g| 97久久超碰国产精品2021| 亚洲人成电影网站久久| 青青热久久综合网伊人| 亚洲va久久久噜噜噜久久天堂| 久久国产高清一区二区三区| 欧美牲交A欧牲交aⅴ久久| 色综合久久88色综合天天 | 久久精品国产亚洲一区二区| 伊人色综合久久天天人手人婷| 久久精品亚洲欧美日韩久久| 久久久久久久人妻无码中文字幕爆| 久久精品夜色噜噜亚洲A∨| 久久成人精品视频| 久久精品黄AA片一区二区三区| 思思久久99热只有频精品66| 精品国产乱码久久久久久浪潮| 99久久精品午夜一区二区| 亚洲乱码精品久久久久..| 7777精品伊人久久久大香线蕉| 久久综合九色综合欧美就去吻| 国产精品99久久久久久董美香| 国产成人精品久久二区二区| 久久国产精品一国产精品金尊| 日韩人妻无码一区二区三区久久| 日本WV一本一道久久香蕉| 久久福利资源国产精品999| 亚洲国产精品嫩草影院久久 | 久久超乳爆乳中文字幕|