MUTEX · RACE
Nâng cao
CA 02 / 08
Đếm lượt xem video không khoá — chuyện gì xảy ra?
Hệ thống đếm lượt xem video trực tiếp:
var viewCount = map[string]int{} // KHÔNG có mutex bảo vệ
func onView(videoID string) {
viewCount[videoID]++ // nhiều goroutine gọi hàm này CÙNG LÚC
}
❯ Hàng nghìn viewer xem cùng lúc, mỗi request chạy onView trong 1 goroutine riêng, map không có khoá bảo vệ. Điều gì có thể xảy ra?