2020-10-23:go中channel的創建流程是什么?#福大大架構師每日一題#
uj5u.com熱心網友回復:
創建channel可以創建緩沖佇列或者非緩沖佇列創建完了會給佇列分配記憶體,在堆中分配
最后回傳一個指向channel的pointer
uj5u.com熱心網友回復:
1.元素大小是否小于2的16次方,否則throw。2.對齊檢查,否則throw。
3.元素大小和容量的乘積不能超出范圍,否則panic。
4.生成*hchan,設定buf。
4.1.佇列和元素大小為0。競速檢測器,buf存*hchan中的buf所在地址。
4.2.非指標。hchan和資料是一個整體。buf存資料的地址。
4.3.指標。hchan和資料分開。buf存資料的地址。
5.賦值操作。給*hchan的屬性賦值,元素大小,元素型別,容量。
6.呼叫lockInit空函式,這個函式沒什么用。
7.回傳*chan。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/188021.html
標籤:Java相關
上一篇:java-大資料分析
