Tôi muốn tìm một cấu trúc xếp hàng (một vùng chứa dữ liệu) mà các phần tử của nó phải là đầu tiên-trong-đầu-ra. Điều quan trọng đối với tôi là cấu trúc phải an toàn chỉ. Tôi sẽ sử dụng vùng chứa dữ liệu này như một công việc hoặc một nhóm kết nối.Có thể sử dụng kênh đệm của Go làm hàng đợi an toàn không?
Tôi biết kênh đệm là an toàn chỉ, nhưng tôi tự hỏi nếu nó hoạt động như FIFO, đặc biệt là trong một tình huống đồng thời.
Và nếu có thể sử dụng kênh đệm làm hàng đợi an toàn theo chủ đề, tôi có cần phải lo lắng về hiệu quả của nó không?
Kênh là câu trả lời. Có rất ít cơ hội tìm kiếm hoặc viết một cái gì đó tốt hơn so với các kênh cho một nhiệm vụ như vậy. – Mostafa
Các kênh đặc biệt phù hợp với hàng đợi công việc, chia sẻ tài nguyên, các hồ bơi kết nối và các kênh tương tự. Cẩn thận để không tái tạo các mẫu ngôn ngữ dựa trên luồng là một trong những tiến bộ lớn của ngôn ngữ Go là cơ chế goroutine + channel. Hãy chắc chắn để hiểu nó (bạn có thể có thể gửi một kiến trúc hoặc chiến lược để SO). –
Đây là điều đầu tiên tôi nghĩ đến khi tôi tìm hiểu về các kênh trong Go, cảm ơn vì đã hỏi điều này! – karysto