Go

Gói context

context.Context, hủy, timeout, deadline, giá trị, WithCancel, WithTimeout

20 câu hỏi phỏng vấn·
Mid-Level
1

Vai trò chính của gói context trong Go là gì?

Câu trả lời

Gói context cho phép quản lý timeout, hủy và deadline một cách nhất quán trên toàn bộ chuỗi gọi. Điều này ngăn các goroutine zombie tiếp tục chạy khi kết quả của chúng không còn cần thiết. Luôn truyền context làm tham số đầu tiên và thường xuyên kiểm tra Done() trong các thao tác dài để tôn trọng việc hủy.

2

Hàm nào tạo một context rỗng không có deadline hoặc hủy?

Câu trả lời

context.Background() trả về một context rỗng, không thể hủy, không có deadline hoặc giá trị. Nó đóng vai trò là điểm khởi đầu để tạo các context dẫn xuất và thường được dùng trong main, khởi tạo hoặc kiểm thử. Không bao giờ dùng nil làm context vì nó gây panic khi truy cập các phương thức.

3

Sự khác biệt giữa context.Background() và context.TODO() là gì?

Câu trả lời

context.TODO() đóng vai trò placeholder khi context phù hợp chưa rõ ràng hoặc chưa có sẵn trong quá trình phát triển. context.Background() được dùng cho các điểm vào thực sự như main hoặc các handler HTTP. Cả hai giống nhau về mặt chức năng nhưng TODO() ghi lại một ý định tạm thời cần được thay thế sau này.

4

Làm thế nào để tạo một context có thể hủy thủ công?

5

Channel nào cho phép phát hiện việc hủy một context?

+17 câu hỏi phỏng vấn

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í