एक बफर चैनल का उपयोग करके, चैनल में कितने तत्व हैं, यह कैसे मापें? उदाहरण के लिए, मैं इस तरह से एक चैनल बना रहा हूं और भेज रहा हूं:
send_ch := make(chan []byte, 100)
// code
send_ch <- msg
मैं मापने के लिए कितने चाहते msgs चैनल में हैं send_ch ।
मुझे पता है कि संगामिति के कारण माप सटीक नहीं होगा, क्योंकि माप और क्रिया के बीच पूर्व-उत्सर्जन हो सकता है (जैसे कि इस वीडियो में चर्चा की गई है Google I / O 2012 - Go Concurrency पैटर्न्स )। मैं इसका उपयोग उत्पादकों और उपभोक्ताओं के बीच प्रवाह नियंत्रण के लिए कर रहा हूँ अर्थात एक बार जब मैं एक उच्च वॉटरमार्क से गुज़रा हूँ, तब तक कुछ व्यवहार बदलकर जब तक मैं एक कम वॉटरमार्क से नहीं गुज़रता।