Beschreiben Sie in Worten, wie Sie das Problem des Cachings des Autopreises lösen würden: Datenstruktur, Synchronisation, Aktualisierung.
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) }
Warum funktioniert der aktuelle Code mit einer unendlichen for-Schleife in main nicht? Wie kann man das beheben?
Sie müssen eine einfache In-Memory-Cache-Bibliothek schreiben. type Cache interface { Set(k, v string) Get(k string) (v string, ok bool) }
Warum liefern einige Anfragen einen Preis, der nie existiert hat (z.B. einen Zwischenwert zwischen altem und neuem Preis)?
Warum löst das Hinzufügen eines Mutex nur für Schreibzugriffe nicht das Problem des Data Race? Wie verwendet man einen Mutex richtig, um eine gemeinsame Variable zu schützen?