Golang

Golang concurrency pattern thực dụng: goroutine, channel và context

Các pattern Go concurrency hay dùng nhất: worker pool, fan-out/fan-in, timeout với context và graceful shutdown.

MT
MT
Builder / SysOps / Shell Enthusiast14 phút30/06/2026
GolangConcurrencyGoroutineChannelContext

Context là cơ chế cancel chuẩn

Mọi goroutine nên nhận `context.Context` làm tham số đầu tiên. Khi context bị cancel (timeout, signal, hoặc parent cancel), goroutine phải dừng sạch.

Dùng `context.WithTimeout` cho HTTP call và DB query để không để goroutine hang vô tận khi upstream chậm.

Bước tiếp theo

Nếu áp dụng vào dự án thật, hãy bắt đầu bằng phiên bản nhỏ nhất có thể đo được, ghi lại quyết định kỹ thuật, rồi cải tiến dựa trên log và phản hồi người dùng.