การใช้ช่องสัญญาณบัฟเฟอร์จะวัดจำนวนองค์ประกอบในช่องได้อย่างไร ตัวอย่างเช่นฉันกำลังสร้างและส่งในช่องเช่นนี้:
send_ch := make(chan []byte, 100)
// code
send_ch <- msg
ฉันต้องการที่จะวัดว่าหลายmsgsอยู่ในช่องsend_ch
ฉันทราบว่าเนื่องจากการเกิดขึ้นพร้อมกันการวัดผลจะไม่แน่นอนเนื่องจากอาจเกิดการสุ่มตัวอย่างล่วงหน้าระหว่างการวัดและการกระทำ (เช่นที่กล่าวถึงในวิดีโอนี้Google I / O 2012 - Go Concurrency Patterns ) ฉันจะใช้สิ่งนี้เพื่อควบคุมการไหลระหว่างผู้ผลิตและผู้บริโภคเช่นเมื่อฉันผ่านลายน้ำสูงเปลี่ยนพฤติกรรมบางอย่างจนกว่าฉันจะผ่านลายน้ำต่ำ