Aprakstiet ar vārdiem, kā risinātu automašīnas cenas kešatmiņas problēmu: datu struktūra, sinhronizācija, atjaunināšana.
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) }
Kāpēc pašreizējais kods ar bezgalīgu for ciklu galvenajā funkcijā nedarbojas? Kā to labot?
Jāuzraksta vienkārša atmiņas kešatmiņas bibliotēka. type Cache interface { Set(k, v string) Get(k string) (v string, ok bool) }
Kāpēc dažreiz dažādi pieprasījumi atgriež cenu, kas nekad nav bijusi (piemēram, starpposma vērtība starp veco un jauno cenu)?
Kāpēc pievienojot mutex tikai rakstīšanai, tas neatrisina datu sacensību problēmu? Kā pareizi izmantot mutex, lai aizsargātu kopīgu mainīgo?