Sobes.tech
Junior — Middle

Логикаи кории плангардони ҳолат дар систем чӣ гуна амалӣ шудааст?

sobes.tech AI

Ҷавоб аз AI

Дархостгоҳи ҳолатҳо (state machine scheduler) дар системаи одатан логикаи гузаришҳоро байни ҳолатҳои объект ё раванди асосан бар асоси ҳодисаҳо ва шароитҳо амалӣ мекунад.

Дар Go, ин метавонад тавассути:

  • Тартиб додани ҳолатҳо ҳамчун доимиятҳо ё намудҳо.
  • Истифодаи switch ё харитҳо барои коркарди гузаришҳо.
  • Каналҳо барои гирифтани ҳодисаҳо ва идоракунии асинхронӣ.

Маслиҳати оддӣ барои мошини ҳолати маҳдуд:

package main

import "fmt"

type State int

const (
    StateIdle State = iota
    StateRunning
    StateStopped
)

type Event int

const (
    EventStart Event = iota
    EventStop
)

func stateMachine(current State, event Event) State {
    switch current {
    case StateIdle:
        if event == EventStart {
            return StateRunning
        }
    case StateRunning:
        if event == EventStop {
            return StateStopped
        }
    }
    return current
}

func main() {
    state := StateIdle
    fmt.Println("Ҳолати ибтидоӣ:", state)

    state = stateMachine(state, EventStart)
    fmt.Println("Пас аз ҳодисаи оғоз:", state)

    state = stateMachine(state, EventStop)
    fmt.Println("Пас аз ҳодисаи боздошт:", state)
}

Дар системаҳои воқеӣ, нақшаёр метавонад сохторҳои мураккабтар, таймерҳо, идоракунии хато ва параллелизмро барои идоракунии ҳолатҳо истифода барад.