They should let this author commit changes to the runtime package docs, because this explanation of GOMAXPROCS is much more clear than the official docs.
This article: "the number of CPUs (whatever your operating system considers to be a CPU) visible to the program at startup."
Official docs: "The number of logical CPUs on the local machine can be queried with NumCPU." and "NumCPU returns the number of logical CPUs usable by the current process."
The problem with the official docs is they don't mention that the value of NumCPU is locked in at startup and never changes.
The fact that it's locked in at startup might be an implementation detail that they don't want people generally relying on, but I personally don't know if that's the case.
That may be, but the docs for NumCPU are still just wrong. NumCPU does not return the number of logical processors in the machine. It returns the population count of the cpu mask, at the moment the runtime was initialized.
This article: "the number of CPUs (whatever your operating system considers to be a CPU) visible to the program at startup."
Official docs: "The number of logical CPUs on the local machine can be queried with NumCPU." and "NumCPU returns the number of logical CPUs usable by the current process."
The problem with the official docs is they don't mention that the value of NumCPU is locked in at startup and never changes.