Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Concurrency in Go (Golang)

Xử lý đồng thời trong Go (Golang)

Xử lý đồng thời trong Go (Golang)

Hiểu lý do và cách thức xử lý đồng thời trong Go.

4.6
(1,395 đánh giá)
15,839 học viên
Giảng viên
Deepak kumar Gunjetti
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 349.000đ -86%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
5.0 giờ video
78 bài giảng
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 30/05/2026

Bạn sẽ học được gì

Cách tạo Goroutine và truyền dữ liệu giữa chúng.
Cách tránh điều kiện tranh chấp (Race conditions) và bế tắc (Deadlocks).
Cách đồng bộ hóa việc thực thi các Goroutine.
Cách Go Scheduler hoạt động.
Cách xây dựng pipeline xử lý luồng với Goroutines và Channels.
Cách truyền dữ liệu qua ranh giới API.

Yêu cầu

Kiến thức cơ bản về ngôn ngữ lập trình Go như vòng lặp, hàm, phương thức.
Cài đặt trình biên dịch Go và một IDE bất kỳ trên máy tính.

Đối tượng phù hợp

Dành cho học viên muốn tìm hiểu từ cơ bản đến nâng cao về lập trình Go.

Nội dung khóa học

14 phần • 77 bài giảng
1 Giới thiệu
2 Tổng quan khóa học
3 Tiến trình (Processes) và Luồng (Threads)
4 Tại sao xử lý đồng thời lại khó
1 Goroutines
2 Sao chép mã nguồn bài tập từ Github Repository
3 Bài tập-Hello
4 Bài tập-ClientServer
5 WaitGroups
6 Bài tập-WaitGroup
7 Goroutines & Closures
8 Bài tập-Closure
9 Bài tập-Closure02
1 Tìm hiểu sâu - Go Scheduler
2 Tìm hiểu sâu - Go Scheduler - Chuyển đổi ngữ cảnh do lời gọi hệ thống đồng bộ
3 Tìm hiểu sâu - Go Scheduler - Chuyển đổi ngữ cảnh do lời gọi hệ thống bất đồng bộ
4 Tìm hiểu sâu - Go Scheduler - Đánh cắp tác vụ (Work Stealing)
1 Channels
2 Bài tập - Channels
3 Range, Buffered Channels
4 Bài tập - Range
5 Bài tập - Buffered Channel
6 Hướng của Channel
7 Bài tập - Hướng của Channel
8 Quyền sở hữu Channel
9 Bài tập - Quyền sở hữu Channel
1 Tìm hiểu sâu - Channels
2 Tìm hiểu sâu - Channels - Gửi và Nhận
3 Tìm hiểu sâu - Channels - Bộ đệm đầy
4 Tìm hiểu sâu - Channels - Bộ đệm rỗng
5 Tìm hiểu sâu - Channels - Channel không đệm
6 Tìm hiểu sâu - Channels - Tổng kết
1 Select
2 Bài tập - Select
3 Bài tập - Hết thời gian chờ (Timeout)
4 Bài tập - Giao tiếp không chặn (Non-blocking)
1 Mutex
2 Bài tập - Mutex
3 Atomic
4 Bài tập - Atomic
5 Biến điều kiện (Conditional Variable)
6 Bài tập - Biến điều kiện - Tín hiệu (Signal)
7 Bài tập - Biến điều kiện - Phát sóng (Broadcast)
8 Sync Once
9 Bài tập - Sync Once
10 Sync Pool
11 Bài tập - Sync Pool
1 Công cụ phát hiện tranh chấp (Race Detector)
2 Bài tập - Tranh chấp (Race)
1 Trình thu thập thông tin web - Tuần tự
2 Trình thu thập thông tin web - Đồng thời
1 Pipeline
2 Bài tập - Pipeline
3 Fan-out & Fan-in
4 Bài tập - Fan-out & Fan-in
5 Hủy Goroutines
6 Bài tập - Hủy Goroutines
1 Xử lý hình ảnh tuần tự
2 Pipeline xử lý hình ảnh
1 Gói Context
2 Gói Context cho việc hủy bỏ
3 Gói Context như một túi dữ liệu
4 Bài tập - WithCancel
5 Bài tập - WithDeadline
6 Bài tập - WithTimeout
7 Bài tập - WithValue
8 Gói Context - Cách dùng chuẩn trong Go
1 Thiết lập thời gian chờ HTTP Server với gói Context
1 Interface
2 Interface-ngầm định
3 Interfaces từ thư viện chuẩn
4 Bài tập interface io.Writer
5 Bài tập interface Stringer
6 Sự thỏa mãn Interface (Interface Satisfaction)
7 Ép kiểu (Type Assertion)
8 Bài tập Ép kiểu
9 Interface rỗng (Empty Interface)

Giới thiệu khóa học

Questions that comes to all Developers is whether they are utilising the available Computing resource efficiently? 

Course Overview

The course could be divided into five parts.

  • Concurrency Primitives

  • Deep Dive into Concurrency Primitives

  • Concurrency Patterns

  • Context Package

  • Bonus Section - Interfaces

In the course we try to answer these questions.

Concurrency Primitives

  • What are the limitations of Threads?

  • What are advantages of goroutines over OS threads?

  • How do we avoid race condition?

  • How Channels are used to communicate data?

  • How do we implement timeout and non-blocking communication?

  • When do we use mutex and channels?

  • How to synchronise execution of goroutines?

  • How to detect race condition in Go?

Deep Dives into Concurrency Primitives

  • How Go scheduler works?

  • How does context switching works?

  • How channel send and receive works underneath?

Concurrency Patterns

  • How to construct streaming pipelines with Goroutines and Channels?

  • How to Fan-out and Fan-in computationally intensive stages?

  • How do we avoid Goroutine Leaks?

Context Package

  • How we can propagate request scoped data and cancellation signal across API boundaries?

Coding Exercises

  • Each concept is followed by a Coding Exercise.

  • Exercises blueprint are shared on Github.

Sample Applications

We will build

  • Blueprint of web crawler.

  • Image processing pipeline.

  • HTTP Server Timeouts with Context Package.

Bonus Section - Interfaces

  • How to define common behaviour between different objects as abstract type?

  • How Interface provides an abstraction for higher level functions?

Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Concurrency
Hiển thị tất cả khoá học Go
Hiển thị tất cả khoá học Programming Languages
Hiển thị tất cả khoá học Software Development
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊