РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1551 of 1593 menu

Функция runtime.NumGoroutine

Функция runtime.NumGoroutine возвращает количество активных горутин в текущем процессе. Она не принимает никаких параметров и возвращает целое число int. Функция полезна для мониторинга и отладки конкурентных программ, позволяя отслеживать количество запущенных горутин в любой момент времени.

Синтаксис

import "runtime" count := runtime.NumGoroutine()

Пример

Давайте получим количество активных горутин в простой программе:

package main import ( "fmt" "runtime" ) func main() { goroutines := runtime.NumGoroutine() fmt.Println(goroutines) }

Результат выполнения кода:

1

Пример

Давайте запустим несколько горутин и проверим их количество:

package main import ( "fmt" "runtime" "sync" ) func main() { var wg sync.WaitGroup for i := 0; i < 5; i++ { wg.Add(1) go func() { defer wg.Done() // Simulate work }() } goroutines := runtime.NumGoroutine() fmt.Println(goroutines) wg.Wait() }

Результат выполнения кода:

6

В этом примере мы запускаем 5 горутин, и runtime.NumGoroutine возвращает 6, так как главная горутина также учитывается.

Пример

Давайте используем функцию для мониторинга количества горутин в циклических операциях:

package main import ( "fmt" "runtime" "sync" ) func main() { var wg sync.WaitGroup maxGoroutines := 10 for i := 0; i < maxGoroutines; i++ { wg.Add(1) go func(id int) { defer wg.Done() // Simulate work }(i) // Log current goroutines count if i%3 == 0 { fmt.Printf("Iteration %d: %d goroutines\n", i, runtime.NumGoroutine()) } } wg.Wait() fmt.Printf("Final: %d goroutines\n", runtime.NumGoroutine()) }

Результат выполнения кода:

"Iteration 0: 2 goroutines" "Iteration 3: 5 goroutines" "Iteration 6: 8 goroutines" "Iteration 9: 11 goroutines" "Final: 1 goroutines"

Обратите внимание, что количество горутин увеличивается с каждой итерацией, так как запущенные горутины еще не завершились.

Смотрите также

  • функцию runtime.GOMAXPROCS,
    которая устанавливает количество используемых процессоров
  • функцию runtime.NumCPU,
    которая возвращает количество логических процессоров
  • функцию runtime.Goexit,
    которая завершает текущую горутину
  • функцию runtime.Gosched,
    которая передает управление другим горутинам
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить