Senior
Dostarczono 20 maszynek do mięsa, 5 wysłano — ile zostało w magazynie i jaki jest aktualny stan w systemie?
sobes.tech AI
Odpowiedź od AI
Jeśli dostarczono 20 mielenek do mięsa i wysłano 5, to na magazynie pozostało 15 mielenek.
Aktualny stan w systemie powinien odzwierciedlać tę ilość — na przykład w bazie danych lub w pamięci aplikacji powinna być wartość 15 dla dostępnych zapasów.
Ważne jest zapewnienie atomowości operacji aktualizacji stanu, aby uniknąć rozbieżności. Na przykład, jeśli wysyłka i przyjęcie odbywają się równocześnie, należy użyć mechanizmów synchronizacji lub transakcji, aby końcowa ilość była poprawna.
Przykład w Go z użyciem mutexu do ochrony stanu:
var (
stock = 20
mu sync.Mutex
)
func ship(amount int) {
mu.Lock()
defer mu.Unlock()
if stock >= amount {
stock -= amount
} else {
// obsługa błędu: niewystarczająca ilość
}
}
func main() {
ship(5)
fmt.Println("Pozostało na magazynie:", stock) // 15
}
W ten sposób stan w systemie to aktualna ilość towaru, odzwierciedlająca wszystkie operacje przyjęcia i wydania.