
1 mengzhuo 2016-03-22 21:51:17 +08:00 via iPhone 碰到这样的的说明你的上层接口设计不当 所有需要锁的地方都要用统一的 get set |
2 bcxx 2016-03-22 21:58:40 +08:00 多用 interface ... |
3 elgoog1970 2016-03-22 22:10:27 +08:00 go is not java |
4 zonghua 2016-03-22 22:20:16 +08:00 @elgoog1970 让我又想到了递归命名法, go is not java `ginj` |
5 zyguan 2016-03-22 22:30:44 +08:00 如果你的实现不可避免的存在竞争条件,那加锁也没什么可耻的。而且加锁也不是非要在 getter/setter 上加,别套用 java 的 synchronized ,完全可以在相关逻辑代码中加,如果逻辑复杂多处竞争,那你就真该考虑优化优化设计了。另外,既然用 go ,那还是尽量多用 channel 少用共享可变量吧。 |
6 darasion OP @< href="/member/mengzhuo">mengzhuo 因为不是所有地方都需要,不统一,所以才纠结。 @zyguan 如果我想在内存中保存一个列表,不断的有各路 goroutine 更新它的某些元素, channel 怎么做? |