Junior — Middle
Jak je v systému implementována logika práce plánovače stavů?
sobes.tech AI
Odpověď od AI
Plánovač stavů (state machine scheduler) v systému obvykle implementuje logiku přechodů mezi stavy objektu nebo procesu na základě událostí a podmínek.
V jazyce Go lze toto realizovat pomocí:
- Definice stavů jako konstant nebo typů.
- Použití switch nebo map pro zpracování přechodů.
- Kanálů pro přijímání událostí a správu asynchronnosti.
Příklad jednoduché konečné automaty:
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("Počáteční stav:", state)
state = stateMachine(state, EventStart)
fmt.Println("Po start události:", state)
state = stateMachine(state, EventStop)
fmt.Println("Po stop události:", state)
}
V reálných systémech může plánovač používat složitější struktury, časovače, správu chyb a paralelismus pro správu stavů.