为啥Golang的sharing memory by communication 效率更高# Programming - 葵花宝典s*k2017-09-25 07:091 楼在两个goroutine互相通信时候,sender把msg送到receiver之前,两者都没法做事,这个原理上听起来跟lock也差不多,为什么效率高?
i*l2017-09-25 07:092 楼既然是 coroutine ,所谓 block 其实也是 yield 出去了,不是真 block。thread 的lock 是真 block 住。【在 s********k 的大作中提到】: 在两个goroutine互相通信时候,sender把msg送到receiver之前,两者都没法做事,这: 个原理上听起来跟lock也差不多,为什么效率高?
s*k2017-09-25 07:093 楼但是用unblocking 的multi threading 也差不多效果吗?比如conditional variable之类?这个用channel communication在design上好处在?
m*p2017-09-25 07:094 楼1. 編程效率高,blocking不容易出錯。。。2. 底層用futex實現,目前效率最高,普通userspace lock有十多種,性能各異,futex是最快的接口【在 s********k 的大作中提到】: 在两个goroutine互相通信时候,sender把msg送到receiver之前,两者都没法做事,这: 个原理上听起来跟lock也差不多,为什么效率高?