Bạn có thể để kênh Go mở vĩnh viễn (không bao giờ đóng kênh) nếu tôi không bao giờ kiểm tra trạng thái của nó không? Nó sẽ dẫn đến rò rỉ bộ nhớ? Mã sau có được không?Bạn có muốn mở kênh không?
func (requestCh chan<- Request) GetResponse(data RequestData) Response {
reply := make(chan Response)
requestCh <- Request{data: data, replyCh: reply}
return <-reply
}
Tôi không chắc chắn tôi đồng ý với phản hồi của liên kết. Tôi đã bị rò rỉ bộ nhớ trong phạm vi 2GB. Ngay sau khi tôi thêm vào các mạch nước chảy đã trở thành một trickle. – Richard
@Richard: Đọc kỹ toàn bộ chuỗi. Tác giả của Go 'gc' và tác giả của' gccgo' nói rằng kênh 'close's là không cần thiết, trừ khi bạn đang tìm kiếm' close'. Đó là lời khuyên có thẩm quyền. – peterSO
@peterSO, có thể nhưng tôi biết những gì tôi đã thấy và đó là những gì tôi đã báo cáo vì vậy xin đừng bỏ tôi. – Richard