Lập trình Go 22/09/2026 6 phút

Livelock và starvation trong Go: khi goroutine bận rộn mà không tiến, hoặc bị bỏ đói

Deadlock làm mọi goroutine đứng; livelock làm chúng bận rộn mà không tiến; starvation bỏ đói số ít. Đo thật: mẫu nhường nhau hiếm khi livelock trên runtime Go (1,03x lãng phí), nhưng starvation lộ 12x mất cân bằng dù Go mutex chống đói hoàn toàn. Cách phát hiện và tránh. Go 1.23.

Lập trình Go 22/09/2026 5 phút

Mutex profile trong Go: tìm khóa nào là nút thắt tranh chấp, thứ CPU profile không thấy

Benchmark cho biết chậm, nhưng không cho biết khóa nào nghẽn. Mutex profile đo tổng thời gian goroutine phải chờ khóa. Đo thật: 10 goroutine tranh một mutex nóng tích lũy 20,8 giây chờ, 100% quy về đúng khóa đó, khóa nguội bị loại. Cách bật, phân tích, và sửa. Go 1.23.