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 printNumbersprintLetters: Đây là hai hàm thực hiện in số và chữ cái tương ứng.
  • go printNumbers()go printLetters(): Khởi chạy hai Goroutine để thực thi hai hàm này đồng thời.
  • time.Sleep(3 * time.Second) trong main(): 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.


Các Hướng Dẫn Cùng Chủ Đề Đang Xem

Các chức năng thường dùng khi sử dụng Selenium Chrome trong Golang

Bài viết này tổng hợp các chức năng thường dùng khi làm việc với Selenium Chrome trong Golang, bao gồm cách cài đặt, tạo phiên làm việc, điều hướng trang web, và tương tác với các phần tử trên trang.
Cách INSERT dữ liệu vào database MySQL bằng Golang

Hướng dẫn cách sử dụng Prepared Statements trong Golang để thực hiện thao tác INSERT dữ liệu vào database MySQL với nhiều tham số.
Cách tự động đăng nhập vào website sử dụng Selenium với Chrome trong Golang

Hướng dẫn cách sử dụng Selenium trong Golang để tự động đăng nhập vào một website bằng trình duyệt Chrome. Bài viết sẽ cung cấp mã code cụ thể và giải thích chi tiết từng bước.
Hướng dẫn đọc nội dung file Excel bằng Golang

Hướng dẫn chi tiết cách đọc nội dung từ file Excel (.xlsx, .xls) bằng Golang, sử dụng thư viện excelize với các bước cài đặt và ví dụ minh họa cụ thể.
Gửi đoạn mã JavaScript vào website bằng Golang sử dụng Selenium

Hướng dẫn cách sử dụng Selenium trong Golang để gửi đoạn mã JavaScript vào một website trên trình duyệt Chrome. Bài viết sẽ cung cấp mã nguồn cụ thể và giải thích chi tiết.
Cách chia chuỗi trong Golang bằng hàm SplitAfterN

Hướng dẫn cách sử dụng hàm `SplitAfterN` trong Golang để chia chuỗi dựa trên ký tự phân tách và giới hạn số phần tử được chia. Hàm này hữu ích khi cần chia chuỗi nhưng vẫn giữ nguyên ký tự phân tách.
Tạo mã Captcha bằng Golang

Hướng dẫn chi tiết cách tạo mã Captcha bằng Golang để bảo vệ ứng dụng web khỏi các cuộc tấn công tự động và bot.
Cách mở ứng dụng Notepad bằng Golang

Hướng dẫn cách sử dụng gói `os/exec` trong Golang để mở ứng dụng Notepad trên hệ điều hành Windows. Đây là một ví dụ thực tiễn về cách gọi và chạy một chương trình bên ngoài từ Golang.
Cách UPDATE dữ liệu database MySQL bằng Golang

Hướng dẫn cách cập nhật dữ liệu trong MySQL database bằng Golang sử dụng Prepared Statements với nhiều tham số để đảm bảo tính bảo mật và hiệu quả.
Cách chuyển đổi chuỗi thành Boolean, Integer hoặc Float trong Golang

Hướng dẫn cách chuyển đổi chuỗi (string) thành các kiểu dữ liệu Boolean, Integer hoặc Float trong Golang. Bài viết này sẽ giúp bạn hiểu cách sử dụng các hàm chuyển đổi tích hợp trong Go để thao tác với các loại dữ liệu khác nhau.

Đã thêm vào giỏ hàng