Descreva em palavras como resolveria o problema de cache do preço do carro: estrutura de dados, sincronização, atualização.
iOS
func getCarPrice() int64 { time.Sleep(1 * time.Second) return rand.Int63n(1000) } func main() { http.HandleFunc("/car/instant", func(resp http.ResponseWriter, req *http.Request) { fmt.Fprintf(resp, "%d", 0) }) http.ListenAndServe(":8080", nil) }
Por que o código atual com um ciclo infinito for no main não funciona? Como corrigir?
É necessário escrever uma biblioteca simples de cache em memória. tipo Cache interface { Set(k, v string) Get(k string) (v string, ok bool) }
Por que algumas consultas retornam um preço que nunca existiu (por exemplo, um valor intermediário entre o preço antigo e o novo)?
Por que adicionar um mutex apenas para escrita não resolve o problema de data race? Como usar corretamente um mutex para proteger uma variável compartilhada?