/src/pkg/runtime/chan.go में चैनलों के लिए स्रोत फ़ाइल (आपके जाने स्रोत स्रोत रूट से) है।
hchan
एक चैनल के लिए केंद्रीय डेटा संरचना है, जो लिंक्ड सूचियां भेजती है और प्राप्त करती है (उनके गोरौटाइन और डेटा तत्व में पॉइंटर धारण करती है) और closed
ध्वज। एक Lock
एम्बेडेड संरचना है जिसे runtime2.go में परिभाषित किया गया है और यह ओएस के आधार पर म्यूटेक्स (फूटेक्स) या सेमफोर के रूप में कार्य करता है। लॉकिंग कार्यान्वयन बिल्ड टैग के आधार पर lock_futex.go (लिनक्स/ड्रैगनफ्लाई/कुछ बीएसडी) या lock_sema.go (विंडोज़/ओएसएक्स/प्लान 9/कुछ बीएसडी) में है।
चैनल ऑपरेशन सभी इस chan.go फ़ाइल में लागू किए गए हैं, ताकि आप मेकचन देख सकें, संचालन भेज सकें और प्राप्त कर सकें, साथ ही चुनिंदा निर्माण, बंद, लेन और कैप बिल्ट-इन्स।
चैनलों के आंतरिक कार्यों पर एक महान गहराई से स्पष्टीकरण के लिए, आपको दिमित्री व्याकोव द्वारा स्वयं Go channels on steroids पढ़ना होगा (गो कोर देव, goroutines, शेड्यूलर और अन्य चीजों के साथ चैनल)।