Írja le szavakkal, hogyan oldaná meg az autó árának cache-elési problémáját: adatszerkezet, szinkronizáció, frissítés.
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) }
Miért nem működik a jelenlegi kód a mainben lévő végtelen for ciklussal? Hogyan javítható?
Egyszerű memória alapú cache könyvtárat kell írni. type Cache interface { Set(k, v string) Get(k string) (v string, ok bool) }
Miért ad vissza néhány lekérdezés olyan árat, ami soha nem volt (például egy közbenső érték a régi és az új ár között)?
Miért nem oldja meg az adatverseny problémáját, ha csak írási mutexet adunk hozzá? Hogyan kell helyesen használni egy mutexet egy közös változó védelmére?