გთხოვთ, სიტყვებით აღწეროთ, როგორ გადაწყვეტთ მანქანის ფასის ქეშირებასთან დაკავშირებულ პრობლემას: მონაცემთა სტრუქტურა, სინქრონიზაცია, განახლება.
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) }
რატომ არ მუშაობს მიმდინარე კოდი, სადაც main-ში უსასრულო for ციკლია? როგორ უნდა შევცვალოთ?
პირდაპირი მეხსიერების ქეშის ბიბლიოთეკის დაწერა გჭირდებათ. type Cache interface { Set(k, v string) Get(k string) (v string, ok bool) }
რატომ ზოგიერთ შეკითხვას პასუხად ეძლევა ფასი, რომელიც არასდროს ყოფილა (მაგალითად, ძველი და ახალი ფასის შორის შუამავალი)?
რატომ არ აძლიერებს mutex-ის დამატება მხოლოდ დაწერაზე data race-ის პრობლემას? როგორ სწორად გამოიყენოთ mutex საერთო ცვლადის დასაცავად?