Opisz słowami, jak rozwiązałbyś problem buforowania ceny samochodu: struktura danych, synchronizacja, aktualizacja.
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) }
Dlaczego obecny kod z nieskończoną pętlą for w main nie działa? Jak to naprawić?
Musisz napisać prostą bibliotekę pamięci podręcznej w pamięci. type Cache interface { Set(k, v string) Get(k string) (v string, ok bool) }
Dlaczego niektóre zapytania zwracają cenę, która nigdy nie istniała (np. wartość pośrednią między starą a nową ceną)?
Dlaczego dodanie mutex tylko do zapisu nie rozwiązuje problemu wyścigu danych? Jak poprawnie używać mutexa do ochrony wspólnej zmiennej?