>  기사  >  백엔드 개발  >  내 고루틴이 Windows에서 실행되지 않는 이유는 무엇입니까?

내 고루틴이 Windows에서 실행되지 않는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-29 02:59:02697검색

Why Doesn't My Goroutine Run on Windows?

Windows에서 고루틴의 동작 이해

테스트 프로그램에서 단순히 문자열 "을 인쇄하는 test()라는 이름의 고루틴을 정의합니다. 시험." 그런데 고루틴이 실행되지 않는 것처럼 보이는 예상치 못한 동작이 발생합니다.

이 문제는 고루틴 실행의 특성에서 발생합니다. 기존 스레드와 달리 고루틴은 협력적입니다. 즉, Go 런타임이 일정을 관리한다는 의미입니다. 귀하의 경우에는 고루틴이 실행되기 전에 기본 함수가 반환됩니다.

Go 문 및 고루틴

go 문은 함수를 비동기적으로 호출합니다. 예제에서와 같이 기본 함수 내에서 사용되는 경우 프로그램 실행은 호출된 함수가 완료될 때까지 기다리지 않습니다. 이는 주요 기능이 고루틴 관리에 관여하지 않기 때문입니다.

고루틴이 실행되도록 하려면 프로그램이 기다릴 수 있는 방법을 제공해야 합니다. 이는 다음을 사용하여 달성할 수 있습니다:

  • 시간 기반 대기: 시간 패키지의 Sleep 기능을 사용하여 특정 기간 동안 기본 기능의 실행을 일시 중지하여 고루틴을 허용할 수 있습니다. 실행 시간.
  • 동기화 기본 요소: 또는 채널이나 뮤텍스와 같은 동기화 기본 요소를 사용하여 고루틴과 기본 기능 간을 조정할 수 있습니다.

시간 기반 대기의 예:

다음은 시간 기반 대기를 포함하는 프로그램의 수정된 버전입니다.

<code class="go">package main

import (
    "fmt"
    "time"
)

func test() {
    fmt.Println("test")
}

func main() {
    go test()
    time.Sleep(10 * time.Second)
}</code>

이 예에서는 시간입니다. Sleep 기능은 주요 기능을 10초 동안 일시 중지하여 고루틴을 실행할 충분한 시간을 제공합니다.

고루틴의 동작을 이해하고 실행을 보장하기 위한 적절한 기술을 통합함으로써 Golang 프로그램에서 고루틴을 효과적으로 사용할 수 있습니다.

위 내용은 내 고루틴이 Windows에서 실행되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.