最近,我一直在深入研究Go的源代码。当我查看sync.Pool的详细信息时,我发现了一条我无法理解的评论。
https://golang.org/src/sync/pool.go?s=1633:1992#L58
// Local per-P Pool appendix.
type poolLocalInternal struct {
private interface{} // Can be used only by the respective P.
shared []interface{} // Can be used by any P.
Mutex // Protects shared.
}
本地per-P Pool附录。
per-P是什么意思?
只能由相应的P
使用
P是什么意思?
答案 0 :(得分:4)
P代表处理器。处理器是用于执行Go代码的资源。一个过程中确实存在GOMAXPROC Ps。 The Go Scheduler Design Doc详细描述了Ps。相关代码位于runtime package。