Blog Go

Đồng thời không phải là song song

Andrew Gerrand
16 January 2013

Nếu có một điều mà hầu hết mọi người biết về Go, đó là nó được thiết kế cho tính đồng thời. Không có phần giới thiệu nào về Go là đầy đủ nếu không có sự trình diễn về goroutine và channel.

Nhưng khi người ta nghe từ đồng thời họ thường nghĩ đến song song, một khái niệm liên quan nhưng khá khác biệt. Trong lập trình, đồng thời là sự kết hợp của các tiến trình thực thi độc lập, trong khi song song là thực thi đồng thời của các tính toán (có thể liên quan). Đồng thời là về việc xử lý nhiều thứ cùng một lúc. Song song là về việc làm nhiều thứ cùng một lúc.

Để làm rõ sự nhầm lẫn này, Rob Pike đã có bài nói chuyện tại hội nghị Waza của Heroku với tiêu đề Concurrency is not parallelism, và video ghi lại bài nói chuyện đã được phát hành vài tháng trước.

Các slide có sẵn tại go.dev/talks (dùng phím mũi tên trái và phải để điều hướng).

Để tìm hiểu về các nguyên tố đồng thời của Go, xem Go concurrency patterns (slides).

Bài tiếp theo: Định dạng code của bạn bằng go fmt
Bài trước: App Engine SDK và workspace (GOPATH)
Mục lục blog