Windows에서 고루틴의 동작 이해
테스트 프로그램에서 단순히 문자열 "을 인쇄하는 test()라는 이름의 고루틴을 정의합니다. 시험." 그런데 고루틴이 실행되지 않는 것처럼 보이는 예상치 못한 동작이 발생합니다.
이 문제는 고루틴 실행의 특성에서 발생합니다. 기존 스레드와 달리 고루틴은 협력적입니다. 즉, Go 런타임이 일정을 관리한다는 의미입니다. 귀하의 경우에는 고루틴이 실행되기 전에 기본 함수가 반환됩니다.
Go 문 및 고루틴
go 문은 함수를 비동기적으로 호출합니다. 예제에서와 같이 기본 함수 내에서 사용되는 경우 프로그램 실행은 호출된 함수가 완료될 때까지 기다리지 않습니다. 이는 주요 기능이 고루틴 관리에 관여하지 않기 때문입니다.
고루틴이 실행되도록 하려면 프로그램이 기다릴 수 있는 방법을 제공해야 합니다. 이는 다음을 사용하여 달성할 수 있습니다:
시간 기반 대기의 예:
다음은 시간 기반 대기를 포함하는 프로그램의 수정된 버전입니다.
<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!