Xử lý đa luồng trong Golang bằng Goroutine
Hướng dẫn cách xử lý đa luồng trong Golang bằng cách sử dụng Goroutine, giúp tối ưu hóa hiệu suất và tận dụng khả năng xử lý song song của CPU.
Trong bài viết này, chúng ta sẽ tìm hiểu cách sử dụng Goroutine để thực hiện xử lý đa luồng trong Golang. Goroutine giúp chúng ta thực hiện nhiều tác vụ đồng thời một cách hiệu quả và dễ dàng.
Mã Golang:
package main
import (
"fmt"
"time"
)
// Hàm xử lý công việc
func printNumbers() {
for i := 1; i <= 5; i++ {
fmt.Printf("Số: %d\n", i)
time.Sleep(500 * time.Millisecond)
}
}
func printLetters() {
for i := 'A'; i <= 'E'; i++ {
fmt.Printf("Chữ cái: %c\n", i)
time.Sleep(500 * time.Millisecond)
}
}
func main() {
// Khởi chạy hai Goroutine
go printNumbers()
go printLetters()
// Giữ chương trình chạy trong khi Goroutine thực thi
time.Sleep(3 * time.Second)
fmt.Println("Hoàn thành xử lý đa luồng bằng Goroutine!")
}
Giải thích chi tiết từng dòng code
-
Hàm
printNumbers
vàprintLetters
: Đây là hai hàm thực hiện in số và chữ cái tương ứng. -
go printNumbers()
vàgo printLetters()
: Khởi chạy hai Goroutine để thực thi hai hàm này đồng thời. -
time.Sleep(3 * time.Second)
trongmain()
: Giữ chương trình chạy trong 3 giây để các Goroutine có thể hoàn thành công việc của mình trước khi chương trình kết thúc.
Yêu cầu hệ thống:
- Golang phiên bản 1.15 trở lên
Cách cài đặt Golang:
- Truy cập trang chủ Golang để tải và cài đặt Golang.
Lời khuyên:
- Nên sử dụng Goroutine cho các tác vụ không đồng bộ hoặc cần xử lý song song để tối ưu hóa hiệu suất.
- Sử dụng các công cụ như
sync.WaitGroup
để quản lý Goroutine khi xử lý đồng thời nhiều tác vụ phức tạp.