在Go中使用渠道是否对性能有好处?

我想知道通道是否足够有效,可以用作编写Go程序的一部分。


肥皂起泡泡
浏览 173回答 3
3回答

长风秋雁

Go中的通道不是函数,它们是原始类型,即所谓的语言的一等公民。与信号量(即互斥量)相比,强烈建议使用通道,因为正确使用通道后,它们可以非常高效地序列化并发访问。Go肯定会胜过任何解释的动态语言,并且比许多编译语言更好地处理并发。还有一些用例不足,例如在火箭控制器等中,Go仍然不够用,但对于普通的实际应用而言,Go无疑是周围最快,最灵活的语言之一。

DIEA

一般而言,是的,频道很快,但是我们在不了解程序的情况下无法告诉您是否应该使用它。我会说这部分不是建设性的。至于实现,将Go与源代码一起安装时可用。找个例子src/pkg/runtime/chan.c。大多数Go并发程序都依赖于渠道。如果您想用Go编写代码并执行并发任务,我会说您几乎别无选择:使用通道,配置文件,并查看是否存在与通道相关的问题。

qq_笑_17

您的问题很奇怪,因为很明显许多Go程序确实有效地使用了通道,因此答案是肯定的。但我认为您可能意味着:对于我的用例而言,渠道是否足够有效?如果您可以详细说明您的程序应该做什么,那么我可以给您一个更好的答案。对于它的价值,我使用Go编写了许多高性能程序,这些程序需要在相似数量的goroutine之间进行通信的通道很多(从数十个到数百个)。是的,它们总体上效率很高。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go