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

如何理解“不要通过共享内存来通信,而应该通过通信来共享内存”?

如何理解“不要通过共享内存来通信,而应该通过通信来共享内存”?

互换的青春 2019-03-01 11:13:39
不要通过共享内存来通信,而应该通过通信来共享内存 这是一句风靡golang社区的经典语,对于刚接触并发编程的人,该如何理解这句话?
查看完整描述

4 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超8个赞

其实如果从分布式的角度来理解,就会比较明了了。

打比方,ab两个进程共同对同一个消息队列进行操作,那么,如果使用共享内存的话,是不是这两个进程就必须局限在同一个物理机上,那么通信的意义就大大缩小了。

如果在设计的时候,对于消息队列,只提供读写接口,而对于内部的实现你完全不用去在意,看起来消息队列就像是共享内存一样了。然而你的消息队列可以利用socket进行通信。

所以,上述这句话,不要用共享内存实现通信是指不要让程序一开始就局限在单机上,而是利用通信,也就是封装内部实现,提供接口的方式来进行相应的操作

查看完整回答
1 反对 回复 2019-03-01
?
慕的地10843

TA贡献1785条经验 获得超8个赞

我认为前者的意思是大家都维护一个状态,后者是每个人都维护一份状态副本。

查看完整回答
反对 回复 2019-03-01
  • 4 回答
  • 0 关注
  • 3508 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号