为了账号安全,请及时绑定邮箱和手机立即绑定

golang 使并发更容易的主要原因

golang 使并发更容易的主要原因

Go
慕妹3242003 2021-11-01 16:42:01
我的理解大致在下面吗?go可大多是检测dead lock在编译时。这go可以使用chan,以尽量减少race condition是因为只有单一的发送者或接收者goroutine可以访问任何特定chan的时刻。
查看完整描述

3 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

我不会说那是准确的。在第一点上,没有关于死锁的任何编译时保证,如果您使用互斥锁不当,您将死锁,没有编译器可以防止这种情况。您可以轻松测试竞争条件,但这是不同的。

在第二点上,通道序列化了您的异步操作,但我认为您如何表述它没有多大意义。一堆 goroutine 可以写入和读取它。这就像一个队列来放入数据,没有协调性。您不会因为多个例程同时读取或写入而感到恐慌,但是如果发生这种情况,Go 没有做任何事情来使您的程序正常运行,您必须使用通道自己协调例程。


查看完整回答
反对 回复 2021-11-01
?
皈依舞

TA贡献1851条经验 获得超3个赞

不,第一个是完全错误的,第二个至少说不清楚或奇怪。


查看完整回答
反对 回复 2021-11-01
  • 3 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信