Go Routine là gì?

Là một trong những tính năng đặc biệt nhất của Golang để lập trình Concurrency cực kỳ đơn giản. Goroutine bản chất là các hàm (function) hay method được thực thi một các độc lập và đồng thời nhưng vẫn có thể kết nối với nhau. Một cách ngắn gọn, những thực thi đồng thời được gọi là Goroutines trong Go (Golang).

Cách khai báo một Goroutine

Trong Go, goroutine là một cơ chế để thực hiện các hàm hoặc đoạn mã đồng thời (concurrency). Để khai báo và chạy một goroutine, bạn chỉ cần thêm từ khóa go trước lệnh gọi hàm. vd: go tenham()

  • go printNumbers(): Hàm printNumbers() được thực thi trong một goroutine. Điều này cho phép nó chạy đồng thời với các phần khác của chương trình.
  • time.Sleep(3 * time.Second): Vì goroutine chạy đồng thời, nếu không có đoạn này, chương trình chính sẽ kết thúc trước khi goroutine kịp hoàn thành. Do đó, ta tạm dừng main() trong 3 giây để chờ goroutine chạy xong, sau đó hàm fmt.Println mới được in ra.

Bạn có thể sử dụng một hàm ẩn danh (anonymous function) để chạy trong goroutine:

Khi sử dụng một anonymous function với goroutine, bạn có thể khai báo và thực thi hàm ngay lập tức bên trong từ khóa go, điều này rất tiện lợi để thực hiện các tác vụ nhanh mà không cần khai báo một hàm tách biệt.

About the Author

Ngọc Tri

View all author's posts

Bài viết khác

Go Struct

Go Struct là gì? Struct trong Go là một kiểu dữ liệu tổng hợp, cho phép bạn nhóm các giá trị có kiểu dữ liệu khác nhau vào một đơn vị duy nhất. Struct có thể được so sánh với các lớp (class) trong lập trình hướng đối tượng, nhưng Go không hỗ trợ kế […]

Go Package

Go Package  là gì? Là tập hợp các file trong cùng một thư mục, hướng tới xử lí một tập hợp các vấn đề có liên quan đến thứ mà Package đó hướng tới, ví dụ, trong thư mục user của mình mình có 3 file .go cùng xử lí các vấn đề liên quan […]

Go Modules

Go Modules là gì? Go Modules là hệ thống quản lý phụ thuộc (dependency management) và phiên bản (versioning) của các thư viện hoặc gói (packages) trong Go. Được giới thiệu từ phiên bản Go 1.11 và trở thành công cụ chính thức trong Go 1.13, Go Modules giúp lập trình viên quản lý các […]

GoLang

GoLang là gì? Golang là một ngôn ngữ lập trình mã nguồn mở do Google phát triển, ngôn ngữ này được thiết kế với mục tiêu tạo ra một ngôn ngữ dễ học, hiệu quả và có khả năng mở rộng cho các phần mềm hệ thống lớn. Go (Golang) còn được biết đến là một […]

Use docker to run go project

Docker is a powerful tool that enables developers to create, deploy and run applications in a containerized environment. Using Docker to run Go projects has many advantages, including the ability to isolate your application from the underlying operating system, simplifying the deployment process, and allowing for greater scalability and flexibility. In this guide, we will […]

Golang the basic concept of Go Programing

Go is a statically-typed, concurrent, and garbage-collected programming language developed by Google. Here are some of the basic concepts and guidelines for writing code in Go: Syntax: Go has a simple and straightforward syntax that is easy to learn. The language has a strict coding style, with specific rules for naming variables, functions, and types, […]