Hướng dẫn dùng golang time.sleep trong PHP

Một trong các điểm mạnh của Go đó là khả năng sử lý đa luồng nó là một trong những vấn đề được các nhà phát triển golang chú trọng hàng đầu. Go đưa ra 2 tính năng hỗ trợ concurrency rất mạnh đó là Goroutine và Channel. Ở bài viết này chúng ta sẽ tập trung vào Goroutine trong Go. Trước tiên cùng đi qua các khái niệm 1 chút.!

1. Concurrency

Xử lý concurrency [đồng thời] nghĩa là có khả năng giải quyết nhiều công việc một lúc, và những công việc đó ko nhất thiết phải xảy ra tại cùng một thời điểm. Hay nói ngắn gọn hơn là việc nhiều task được xử lý cùng một lúc.

2. Goroutines

Cơ chế hoạt động và cách sử dụng

Cơ chế của goroutine khá đơn giản: 1 function tồn tại một cách đa luồng với các goroutine khác trên cùng một không gian bộ nhớ, Go có bộ điều khiển quản lý các goroutine, rồi phân phối chúng vào các bộ xử lý logic và gắn mỗi bộ xử lý logic này với một thread hệ thống được tạo ra trước đó để thực thi các goroutine này. Nói cách khác, mỗi thread hệ thống sẽ xử lý một nhóm goroutine được điều phối thông qua bộ xử lý logic. Với bộ điều khiển quản lý tác vụ đồng thời và cơ chế bộ xử lý logic, những cái khó khăn, phức tạp khi khai báo thread Go đã xử lý hết giúp chúng ta rồi, chúng ta chỉ việc sử dụng thôi.

Để khởi tạo một goroutine ta chỉ cần thêm phía trước một function call hay method call từ khoá go . VD: Hiển thị số tuần tự từ 1 đến 20 và không sử dụng goroutine.

package main

import [
	"fmt"
]

func main[] {
	g1[]
	g2[]
}

func g1[] {
	for i := 1 ; i 

Chủ Đề