Senior
Foram entregues 20 moedores de carne, 5 foram enviados — quanto resta no armazém e qual é o estado atual no sistema?
sobes.tech IA
Resposta da IA
Se trouxeram 20 moedores de carne e enviaram 5, então no armazém ficaram 15 moedores.
O estado atual no sistema deve refletir essa quantidade — por exemplo, na base de dados ou na memória da aplicação deve haver um valor de 15 para o estoque disponível.
É importante garantir a atomicidade da operação de atualização do estado para evitar desincronizações. Por exemplo, se o envio e a recepção ocorrerem em paralelo, deve-se usar mecanismos de sincronização ou transações para que o resultado final seja correto.
Exemplo em Go usando um mutex para proteger o estado:
var (
stock = 20
mu sync.Mutex
)
func ship(amount int) {
mu.Lock()
defer mu.Unlock()
if stock >= amount {
stock -= amount
} else {
// tratamento de erro: estoque insuficiente
}
}
func main() {
ship(5)
fmt.Println("Restante no armazém:", stock) // 15
}
Assim, o estado no sistema é a quantidade atual de produto, refletindo todas as operações de entrada e saída.