Sobes.tech
Senior

20 húsdarálót szállítottak, 5-öt kiszállítottak — mennyi maradt raktáron és mi a rendszer aktuális állapota?

sobes.tech MI

Válasz az MI-től

Ha 20 darálógépet hoztak be, és 5-öt kiszállítottak, akkor a raktárban 15 darálógép maradt.

A rendszer aktuális állapotának tükröznie kell ezt a mennyiséget — például az adatbázisban vagy az alkalmazás memóriájában az elérhető készlet értéke 15 legyen.

Fontos az állapot frissítési művelet atomosságának biztosítása, hogy elkerüljük a szinkronizációs problémákat. Például, ha a kiszállítás és a fogadás párhuzamosan történik, akkor szinkronizációs mechanizmusokat vagy tranzakciókat kell alkalmazni, hogy a végső mennyiség helyes legyen.

Go nyelven mutex használatával védett állapot példája:

var (
    stock = 20
    mu    sync.Mutex
)

func ship(amount int) {
    mu.Lock()
    defer mu.Unlock()
    if stock >= amount {
        stock -= amount
    } else {
        // hiba kezelése: nem elég a készlet
    }
}

func main() {
    ship(5)
    fmt.Println("Raktárban maradt:", stock) // 15
}

Így a rendszer állapota a termék aktuális mennyisége, amely tükrözi az összes be- és kiadási műveletet.