1. Goroutine là gì?
Goroutine là:
- Một "luồng nhẹ" (lightweight thread) trong Go
- Cho phép chạy nhiều function song song (concurrent)
Ví dụ dễ hiểu:
Bình thường:
- Bạn làm từng việc một
Goroutine:
- Bạn làm nhiều việc cùng lúc
👉 Giống như:
- 1 người làm việc -> chậm
- 10 người làm cùng -> nhanh
2. Goroutine khác gì Thread?
| Tiêu chí | Thread | Goroutine |
| Tài nguyên | Nặng | Nhẹ |
| Tạo mới | Chậm | Rất nhanh |
| Số lượng | Ít | Hàng ngàn |
| Quản lý | OS | Go runtime |
Điểm mạnh: Goroutine nhẹ hơn thread rất nhiều
3. Cách sử dụng Goroutine
Chỉ cần thêm từ khóa go:
go funcName()
👉 Ví dụ:
package main
import "fmt"
func hello() {
fmt.Println("Hello Goroutine")
}
func main() {
go hello()
fmt.Println("Main function")
}
👉 Kết quả:
hello()chạy song song vớimain
4. Goroutine hoạt động như thế nào?
- Không chạy trực tiếp trên OS thread
- Được quản lý bởi Go runtime
- Runtime sẽ:
- Phân phối goroutine
- Tối ưu CPU
👉 Bạn không cần lo:
- Thread
- Scheduling
5. Goroutine + Channel
Goroutine thường đi kèm với: Channel (kênh giao tiếp)
Ví dụ:
- Goroutine A gửi data
- Goroutine B nhận data
👉 Giúp:
- Tránh lỗi race condition
- Code rõ ràng hơn
6. Sai lầm thường gặp
- Tạo quá nhiều goroutine không kiểm soát
- Không dùng channel -> dễ lỗi data
- Không sync -> bug khó debug
7. Khi nào nên dùng Goroutine?
- Nên dùng khi:
- Xử lý nhiều request
- Gọi API song song
- Xử lý background job
- Không nên dùng khi:
- Task đơn giản
- Không cần concurrency
8. Vì sao Goroutine quan trọng?
👉 Đây là lý do Go mạnh:
- Scale tốt
- Xử lý nhanh
- Dễ viết concurrent code
👉 Nhiều hệ thống lớn dùng Go vì điều này
Kết luận
Goroutine là "vũ khí" mạnh nhất của Golang giúp bạn:
👉 Chạy hàng ngàn tác vụ cùng lúc
👉 Tối ưu hiệu năng hệ thống
Hiểu Goroutine = hiểu 80% sức mạnh của Go.