我想知道通道是否足夠有效,可以用作編寫Go程序的一部分。
3 回答

長風秋雁
TA貢獻1757條經驗 獲得超7個贊
Go中的通道不是函數,它們是原始類型,即所謂的語言的一等公民。
與信號量(即互斥量)相比,強烈建議使用通道,因為正確使用通道后,它們可以非常高效地序列化并發訪問。
Go肯定會勝過任何解釋的動態語言,并且比許多編譯語言更好地處理并發。還有一些用例不足,例如在火箭控制器等中,Go仍然不夠用,但對于普通的實際應用而言,Go無疑是周圍最快,最靈活的語言之一。

DIEA
TA貢獻1820條經驗 獲得超2個贊
一般而言,是的,頻道很快,但是我們在不了解程序的情況下無法告訴您是否應該使用它。我會說這部分不是建設性的。
至于實現,將Go與源代碼一起安裝時可用。找個例子src/pkg/runtime/chan.c
。
大多數Go并發程序都依賴于渠道。如果您想用Go編寫代碼并執行并發任務,我會說您幾乎別無選擇:使用通道,配置文件,并查看是否存在與通道相關的問題。

qq_笑_17
TA貢獻1818條經驗 獲得超7個贊
您的問題很奇怪,因為很明顯許多Go程序確實有效地使用了通道,因此答案是肯定的。但我認為您可能意味著:對于我的用例而言,渠道是否足夠有效?如果您可以詳細說明您的程序應該做什么,那么我可以給您一個更好的答案。
對于它的價值,我使用Go編寫了許多高性能程序,這些程序需要在相似數量的goroutine之間進行通信的通道很多(從數十個到數百個)。是的,它們總體上效率很高。
- 3 回答
- 0 關注
- 195 瀏覽
添加回答
舉報
0/150
提交
取消