Go的sync.Pool源代码中的P是什么意思?

时间:2018-03-17 03:39:25

标签: go

最近,我一直在深入研究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是什么意思?

1 个答案:

答案 0 :(得分:4)

P代表处理器。处理器是用于执行Go代码的资源。一个过程中确实存在GOMAXPROC Ps。 The Go Scheduler Design Doc详细描述了Ps。相关代码位于runtime package