Rod Hynes a0cc0fd2a7 go mod and vendor updates for dde8c33d 1 rok temu
..
.cirrus.yml a0cc0fd2a7 go mod and vendor updates for dde8c33d 1 rok temu
LICENSE a0cc0fd2a7 go mod and vendor updates for dde8c33d 1 rok temu
README.md a0cc0fd2a7 go mod and vendor updates for dde8c33d 1 rok temu
numcpus.go a0cc0fd2a7 go mod and vendor updates for dde8c33d 1 rok temu
numcpus_bsd.go a0cc0fd2a7 go mod and vendor updates for dde8c33d 1 rok temu
numcpus_linux.go a0cc0fd2a7 go mod and vendor updates for dde8c33d 1 rok temu
numcpus_solaris.go a0cc0fd2a7 go mod and vendor updates for dde8c33d 1 rok temu
numcpus_unsupported.go a0cc0fd2a7 go mod and vendor updates for dde8c33d 1 rok temu
numcpus_windows.go a0cc0fd2a7 go mod and vendor updates for dde8c33d 1 rok temu

README.md

numcpus

Go Reference GitHub Action Status

Package numcpus provides information about the number of CPUs in the system.

It gets the number of CPUs (online, offline, present, possible, configured or kernel maximum) on Linux, Darwin, FreeBSD, NetBSD, OpenBSD, DragonflyBSD or Solaris/Illumos systems.

On Linux, the information is retrieved by reading the corresponding CPU topology files in /sys/devices/system/cpu.

On BSD systems, the information is retrieved using the hw.ncpu and hw.ncpuonline sysctls, if supported.

Not all functions are supported on Darwin, FreeBSD, NetBSD, OpenBSD, DragonflyBSD and Solaris/Illumos. ErrNotSupported is returned in case a function is not supported on a particular platform.

Usage

package main

import (
	"fmt"
	"os"

	"github.com/tklauser/numcpus"
)

func main() {
	online, err := numcpus.GetOnline()
	if err != nil {
		fmt.Fprintf(os.Stderr, "GetOnline: %v\n", err)
	}
	fmt.Printf("online CPUs: %v\n", online)

	possible, err := numcpus.GetPossible()
	if err != nil {
		fmt.Fprintf(os.Stderr, "GetPossible: %v\n", err)
	}
	fmt.Printf("possible CPUs: %v\n", possible)
}

References