
Cơ bản về Goroutine
Goroutine, từ khóa go, sync.WaitGroup, runtime.GOMAXPROCS, goroutine leak
1Goroutine trong Go là gì?
Goroutine trong Go là gì?
Câu trả lời
Goroutine là một hàm chạy đồng thời với các hàm khác, được quản lý bởi Go runtime thay vì OS. Nó cực kỳ nhẹ (vài KB stack ban đầu) so với một thread OS (vài MB). Go scheduler có thể ghép kênh hàng nghìn thậm chí hàng triệu goroutine trên một số lượng thread OS hạn chế, khiến tính đồng thời trở nên rất dễ tiếp cận trong Go.
2Làm thế nào để khởi động một goroutine mới trong Go?
Làm thế nào để khởi động một goroutine mới trong Go?
Câu trả lời
Từ khóa go theo sau bởi một lời gọi hàm sẽ khởi động một goroutine mới. Ví dụ, 'go myFunction()' hoặc 'go func() { ... }()' cho một hàm ẩn danh. Goroutine thực thi ngay lập tức song song với mã gọi. Cảnh báo: hàm main không tự động chờ các goroutine đã khởi chạy hoàn thành.
3Sự khác biệt chính giữa một goroutine và một thread OS là gì?
Sự khác biệt chính giữa một goroutine và một thread OS là gì?
Câu trả lời
Một goroutine tiêu thụ khoảng 2 KB stack ban đầu, trong khi một thread OS thường cần 1-2 MB. Go runtime quản lý việc scheduling các goroutine trong không gian người dùng (M:N scheduling), ghép kênh hàng nghìn goroutine trên một vài thread OS. Điều này cho phép tạo hàng triệu goroutine mà không làm quá tải hệ thống, không giống như các thread OS vốn bị giới hạn bởi tài nguyên.
Điều gì xảy ra nếu chương trình chính kết thúc trước khi một goroutine hoàn thành?
Go runtime quản lý việc thực thi goroutine như thế nào?
+17 câu hỏi phỏng vấn
Các chủ đề phỏng vấn Go khác
Kiến thức cơ bản về Go
Cấu trúc dữ liệu Go
Interface trong Go
Xử lý lỗi
Channels
Go Modules
Máy chủ HTTP
HTTP Client
Mã hóa JSON
Database/SQL
Gói context
Testing
Các mẫu Concurrency
Primitive đồng bộ hóa
Framework web Go
Thiết kế API REST
gRPC
Reflection
Quản lý bộ nhớ
Tối ưu hóa hiệu năng
Generics
Go Design Patterns
Microservices
Bảo mật và Xác thực
Docker & Containerization
Kubernetes Basics
Go Nâng cao
Phát triển CLI
Nắm vững Go cho lần phỏng vấn tiếp theo
Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.
Bắt đầu miễn phí