原地址 : https://golang.org/ref/mem
在其中的 advice 中 :
If you must read the rest of this document to understand the behavior of your program, you are being too clever.
Don't be clever.
这个是啥意思呢?
1
AndrewGhost 2019-12-12 18:16:38 +08:00
Don’t be clever, 不要自作聪明。
|
2
0ZXYDDu796nVCFxq 2019-12-12 18:17:44 +08:00 via Android
tl, dr 的加强版
|
3
ClericPy 2019-12-12 18:17:57 +08:00
考 4 级时候遇到过
It's not a good thing to be too clever. 不过似乎语境不一样, 帮顶 |
4
ClericPy 2019-12-12 18:22:27 +08:00
点到文档看了下, 没有其他意思, 就是不建议看剩下的文档, 新手不要轻易尝试 memory operations, 用现成的 channel 或者 sync
|
5
shintendo 2019-12-12 18:23:48 +08:00
我觉得 too clever 不是说你读文档,而是说你的程序。
如果你的程序需要读完下面的文档才能理解,那么你的程序写得 too clever 了(类似奇技淫巧的意思?)。 没学过 go,纯猜想 |
6
orzorzorzorz 2019-12-12 18:24:03 +08:00
看上去像是嘲讽啊...别看,看就秃了。
|
7
Akiyu OP 感觉有三种含义:
1. 比较嘲讽的那种, 如果把所有文档看完才明白, 那就"太聪明"了. 不过一个官方文档应该不会这么做 2. 作者不太建议一定要看完所有, 类似于 "好读书不求甚解", 理解为重, 不要全部看完 就是建议不要太死板, 自作聪明 3. 就是 @ClericPy 说的, 新手老老实实就行 |
8
lhx2008 2019-12-12 18:30:43 +08:00 via Android
手机打不开,我猜是理解抽象的接口就可以了,没有必要用底层实现的东西。这也没有错,你会写,你的同事不会,协作就成问题
|
9
dbw9580 2019-12-12 18:30:49 +08:00 via Android
文档是关于 go routine 不做同步也一定能够保证并发安全的几个条件。
下面几句话叫你用 channel/sync atomic 做显式同步,而不要依赖这个文档里描述的条件而不做同步。 |
10
WilsonGGG 2019-12-12 18:32:10 +08:00
实践指导理论,先干了再说
|
11
catror 2019-12-12 19:29:28 +08:00 via Android
翻译:
如果你一定要读这篇文档才能确定你的程序行为,那么你一定是自作聪明了(隐含意:程序行为依赖于这篇文档中描述的行为,不建议这么做)。 别自作聪明。 |
12
lance6716 2019-12-12 20:13:08 +08:00 via Android
用简单、明显的 sync,不要了解 go 内部的这些难懂难用的 happens before
|
13
Vegetable 2019-12-12 20:31:52 +08:00
实际上是说,不要尝试通过过于底层的 api 去操作内存.
Advice Programs that modify data being simultaneously accessed by multiple goroutines must serialize such access. To serialize access, protect the data with channel operations or other synchronization primitives such as those in the sync and sync/atomic packages. If you must read the rest of this document to understand the behavior of your program, you are being too clever. Don't be clever. 忠告 修改由多个 goroutine 同时访问的数据的程序必须序列化此类访问。 要序列化访问,请使用通道操作或其他同步原语(例如 sync 和 sync / atomic 包中的原语)保护数据。 如果您必须阅读本文档的其余部分以了解程序的行为,那么您就太聪明了。 别聪明 |