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)
}
Дар системаҳои воқеӣ, нақшаёр метавонад сохторҳои мураккабтар, таймерҳо, идоракунии хато ва параллелизмро барои идоракунии ҳолатҳо истифода барад.