Sobes.tech
Back to questions
Junior — Middle
86

Можно ли программно регулировать число запускаемых процессов в среде выполнения Go?

Answer from AI

sobes.tech AI

Да, в Go можно программно регулировать число одновременно выполняемых потоков операционной системы (процессов планировщика), которые используются для выполнения горутин. Для этого используется функция runtime.GOMAXPROCS(n), где n — желаемое число потоков.

По умолчанию GOMAXPROCS равен числу логических процессоров на машине, но его можно изменить во время выполнения программы, например:

import (
    "fmt"
    "runtime"
)

func main() {
    fmt.Println("Default GOMAXPROCS:", runtime.GOMAXPROCS(0)) // получить текущее значение
    runtime.GOMAXPROCS(4) // установить число потоков в 4
    fmt.Println("Updated GOMAXPROCS:", runtime.GOMAXPROCS(0))
}

Это позволяет контролировать параллелизм и производительность приложения в зависимости от задач и ресурсов.