免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

狀態(tài)機的一般實現(xiàn)-創(chuàng)新互聯(lián)

相關概念

  • 有限狀態(tài)機/finite-state machine (FSM): 具有有限狀態(tài)數(shù)目的狀態(tài)機,是最常用的狀態(tài)機,也是一般討論狀態(tài)機時所指的對象
  • 無限狀態(tài)機/Infinite State Machine:具有無限狀態(tài)數(shù)目的狀態(tài)機,很少用到
  • 狀態(tài)/state:狀態(tài)可達到的某個狀態(tài)
  • 狀態(tài)轉換/transition:狀態(tài)機的從一個狀態(tài)轉變?yōu)榱硪粋€狀態(tài)
  • 輸入/input/事件/event:可被被狀態(tài)機接收并處理的事件輸入,可能導致狀態(tài)變動

一般狀態(tài)的UML表示如下:

創(chuàng)新互聯(lián)公司是專業(yè)的烏爾禾網(wǎng)站建設公司,烏爾禾接單;提供網(wǎng)站制作、成都網(wǎng)站建設,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行烏爾禾網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

狀態(tài)機的一般實現(xiàn)

狀態(tài)機的一般實現(xiàn)

狀態(tài)機的一般實現(xiàn)

狀態(tài)機的一般實現(xiàn)

一個播放器示例

public enum State {

    IDLE,

    DATA_SOURCE,

    PREPARING,

    PREPARED,

    STARTING,

    STARTED,

    BUFFERING,

    READY,

    SWITCHING_PROGRAM,

    SWITCHING_CHANNEL,

    SWITCHING_DEFINITION,

    SWITCHING_ENGINE,

    STOPPING,

    RELEASING,

    ERROR
}

狀態(tài)的順序很重要,盡量按照stack的形式,對于特殊狀態(tài)特殊處理,比如error。

public class Event {

    public static class SetDataSourceEvent extends LoopEvent {
        public Uri uri;

        public SetDataSourceEvent() {}

        public SetDataSourceEvent(Uri uri) {
            this.uri = uri;
        }
    }

    public static class PrepareEvent extends LoopEvent {}

    public static class StartEvent extends LoopEvent {}

    public static class SwitchChannelEvent extends LoopEvent {
        public int cateIndex;
        public int channelIndex;

        public SwitchChannelEvent() {}

        public SwitchChannelEvent(int cateIndex, int channelIndex) {
            this.cateIndex = cateIndex;
            this.channelIndex = channelIndex;
        }
    }

    public static class SwitchDefinitionEvent extends LoopEvent {
        public int definition;

        public SwitchDefinitionEvent() {}

        public SwitchDefinitionEvent(int definition) {
            this.definition = definition;
        }
    }

    public static class SwitchEngineEvent extends LoopEvent {
        public String engine;

        public SwitchEngineEvent() {}

        public SwitchEngineEvent(String engine) {
            this.engine = engine;
        }
    }

    public static class StopEvent extends LoopEvent {}
}
public abstract class Action {
    protected abstract void doAction() throws Exception;
}

public class Action1 extends Action {
    protected void doAction() throws Exception {
        // xxxx
        // update state
    }
}

...
public abstract class LoopStateMachine {

    private ActionThread mActionThread = new ActionThread("LoopActionThread");

    private BlockingQueue<Action> mActionQueue = new ArrayBlockingQueue<>(100);

    private State mState;

    public void sendEvent(Event event) {
        // 根據(jù)event創(chuàng)建action并塞入mActionQueue
    }

    private class ActionThread extends Thread {
        public ActionThread(String name) {
            super(name);
        }

        @Override
        public void run() {
            super.run();
           while (true) {
                try {
                    LoopAction action = mActionQueue.take();
                    action.doAction();
                } catch (Exception e) {
                    Logger.w(TAG, "$ActionThread#run(): exception", e);

                    mState = State.ERROR;
                    // 繼續(xù)
                }
            }
        }
    }
}

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

當前文章:狀態(tài)機的一般實現(xiàn)-創(chuàng)新互聯(lián)
文章來源:http://m.newbst.com/article36/hpdsg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)商城網(wǎng)站建站公司網(wǎng)站設計面包屑導航用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化