Goroutines và channels là hai thứ làm nên tên tuổi của Go. Một góc nhìn thực tế về concurrency trong Go — từ goroutine leak, channel blocking, tới những pattern áp dụng trong công việc hằng ngày.
Mình chia sẻ cách sử dụng context.Context trong Go để cancel request và downstream operations một cách graceful, tránh memory leak và data inconsistency.
Context trong Go tưởng phức tạp mà thực ra chỉ xoay quanh 3 việc: timeout, cancellation, và pass giá trị. Mình viết bài này để ghi lại cách hiểu đơn giản nhất.
Mấy tuần nay mình mày mò học Golang sau bao năm gắn bó với JavaScript, .NET với Rust. Chia sẻ cảm nhận đầu tiên về một ngôn ngữ nhìn đơn giản mà cũng lắm trò hay.