Skip to content

Latest commit

 

History

History
35 lines (27 loc) · 1.73 KB

File metadata and controls

35 lines (27 loc) · 1.73 KB

runtime.Gosched() в Go - это функция из пакета runtime, которая используется для явного предоставления времени планировщику Go для перераспределения ресурсов горутин. Эта функция говорит планировщику Go, что текущая горутина готова отдать своё время выполнения другим горутинам.

Когда runtime.Gosched() вызывается внутри горутины, это дает возможность другим горутинам выполнить свою работу, что помогает предотвратить долгие блокировки или голодание горутин.

Вот пример использования runtime.Gosched():

package main

import (
	"fmt"
	"runtime"
)

func main() {
	go func() {
		for i := 0; i < 3; i++ {
			fmt.Println("Goroutine 1")
			runtime.Gosched() // Предоставляем время другим горутинам
		}
	}()

	go func() {
		for i := 0; i < 3; i++ {
			fmt.Println("Goroutine 2")
			runtime.Gosched() // Предоставляем время другим горутинам
		}
	}()

	// Ждем завершения работы горутин
	fmt.Scanln()
}

В этом примере две горутины печатают сообщения и вызывают runtime.Gosched(), чтобы предоставить время выполнения другим горутинам. Это помогает управлять доступом к ресурсам и улучшает параллельную обработку в программе.