3 回答

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊
Go中的通道不是函數(shù),它們是原始類(lèi)型,即所謂的語(yǔ)言的一等公民。
與信號(hào)量(即互斥量)相比,強(qiáng)烈建議使用通道,因?yàn)檎_使用通道后,它們可以非常高效地序列化并發(fā)訪問(wèn)。
Go肯定會(huì)勝過(guò)任何解釋的動(dòng)態(tài)語(yǔ)言,并且比許多編譯語(yǔ)言更好地處理并發(fā)。還有一些用例不足,例如在火箭控制器等中,Go仍然不夠用,但對(duì)于普通的實(shí)際應(yīng)用而言,Go無(wú)疑是周?chē)羁欤铎`活的語(yǔ)言之一。

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超3個(gè)贊
一般而言,是的,頻道很快,但是我們?cè)诓涣私獬绦虻那闆r下無(wú)法告訴您是否應(yīng)該使用它。我會(huì)說(shuō)這部分不是建設(shè)性的。
至于實(shí)現(xiàn),將Go與源代碼一起安裝時(shí)可用。找個(gè)例子src/pkg/runtime/chan.c
。
大多數(shù)Go并發(fā)程序都依賴(lài)于渠道。如果您想用Go編寫(xiě)代碼并執(zhí)行并發(fā)任務(wù),我會(huì)說(shuō)您幾乎別無(wú)選擇:使用通道,配置文件,并查看是否存在與通道相關(guān)的問(wèn)題。

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個(gè)贊
您的問(wèn)題很奇怪,因?yàn)楹苊黠@許多Go程序確實(shí)有效地使用了通道,因此答案是肯定的。但我認(rèn)為您可能意味著:對(duì)于我的用例而言,渠道是否足夠有效?如果您可以詳細(xì)說(shuō)明您的程序應(yīng)該做什么,那么我可以給您一個(gè)更好的答案。
對(duì)于它的價(jià)值,我使用Go編寫(xiě)了許多高性能程序,這些程序需要在相似數(shù)量的goroutine之間進(jìn)行通信的通道很多(從數(shù)十個(gè)到數(shù)百個(gè))。是的,它們總體上效率很高。
- 3 回答
- 0 關(guān)注
- 198 瀏覽
添加回答
舉報(bào)