課程
/后端開發
/Go
/搭建并行處理管道,感受GO語言魅力
還是不明白為什么merge的時間是一樣的 ?求解釋
2018-03-01
源自:搭建并行處理管道,感受GO語言魅力 3-7
正在回答
個人理解:并行中,merge1,merge2,merge3 都在等待自己的 輸入 chan 中有數據存入。merge1比較一次就會往自己的輸出chan,也就是merge3的輸入chan中存一個數據;merge2同理;merge3等待merge1,merge2都比較完一次輸出到chan中一個int,自己就可以比較一次。所以merge3只會比merge1,merge2中完成慢的那一個慢一次比較
因為只要排序好了,立即會向merge的接收channel發消息,假定有三個merge。假定:merge1、merge2是第一階段。merge3是第二階段。只要merge1, merge2有數據輸出了,merge3就會立即做排序,它們就像是幾乎是同時進行的,所以時間上沒有多大差別。
舉報
通過搭建并行數據處理管道,展示go語言在并發編程方面的優勢
1 回答merge 時只有一個輸入ready了,有沒問題
2 回答關于排序時間
1 回答在相同時間內,執行單個沒有打印出來hello,而多并發的時候可以打印,這是為什么?
2 回答channel 是 routine 間通信的方式,為什么在main函數中讀取的時候可以直接讀呢?
2 回答讀取問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-03-04
個人理解:并行中,merge1,merge2,merge3 都在等待自己的 輸入 chan 中有數據存入。merge1比較一次就會往自己的輸出chan,也就是merge3的輸入chan中存一個數據;merge2同理;merge3等待merge1,merge2都比較完一次輸出到chan中一個int,自己就可以比較一次。所以merge3只會比merge1,merge2中完成慢的那一個慢一次比較
2018-03-03
因為只要排序好了,立即會向merge的接收channel發消息,假定有三個merge。
假定:
merge1、merge2是第一階段。
merge3是第二階段。
只要merge1, merge2有數據輸出了,merge3就會立即做排序,它們就像是幾乎是同時進行的,所以時間上沒有多大差別。