Décrivez en mots comment vous résoudriez le problème de la mise en cache du prix de la voiture : structure de données, synchronisation, mise à jour.
iOS
Pourquoi le code actuel avec une boucle infinie for dans main ne fonctionne-t-il pas ? Comment le corriger ?
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) }
Vous devez écrire une bibliothèque simple de cache en mémoire. type Cache interface { Set(k, v string) Get(k string) (v string, ok bool) }
Pourquoi certaines requêtes renvoient-elles un prix qui n'a jamais existé (par exemple, une valeur intermédiaire entre l'ancien et le nouveau prix) ?
Pourquoi l'ajout d'un mutex uniquement pour l'écriture ne résout-il pas le problème de la course de données ? Comment utiliser correctement un mutex pour protéger une variable partagée ?