我想知道通道是否足够有效,可以用作编写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 关注
- 172 浏览
添加回答
举报
0/150
提交
取消