Go의 컨텍스트 취소 기능을 사용하여 진행 중인 Goroutine을 정상적으로 취소하세요. 컨텍스트 패키지를 사용하여 시간 초과가 있는 컨텍스트를 생성하세요. 함수가 반환될 때 컨텍스트를 취소하려면 defer를 사용하세요. 취소 이벤트를 수신하려면 Goroutine의 select 문을 사용하세요.
고루틴에서 컨텍스트 취소 기능을 어떻게 사용하나요?
Go에서는 컨텍스트 취소 메커니즘을 통해 특정 조건이 충족되면 진행 중인 고루틴을 정상적으로 취소할 수 있습니다. 이는 백그라운드에서 실행해야 하지만 필요한 경우 취소할 수 있는 작업에 유용합니다. husage 시나리오 컨트리 텍스트 취소는 다음 시나리오에 특히 적합합니다. context 패키지를 사용해야 합니다. 아래와 같이:
package main import ( "context" "fmt" "time" ) func main() { ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() go func() { for { select { case <-ctx.Done(): fmt.Println("Context cancelled!") return default: fmt.Println("Working...") time.Sleep(1 * time.Second) } } }() time.Sleep(10 * time.Second) }
이 예에서:
context.WithTimeout()
은 5초 동안 시간 초과되는 새 컨텍스트를 만듭니다.
defer cancel()
은 main 함수가 반환될 때 컨텍스트가 취소되도록 합니다.
ctx.Done()
채널이 신호를 받으면 종료됩니다.실제 애플리케이션에서 컨텍스트 취소는 다음 작업에 사용될 수 있습니다.
context
包。如下所示:
在这个示例中:
context.WithTimeout()
创建了一个新的上下文,它将超时 5 秒。defer cancel()
确保在 main 函数返回时取消上下文。ctx.Done()
通道收到信号时退出。实战案例
在真实的应用程序中,上下文取消可以用于以下任务:
注意事项
请注意以下注意事项:
context.Done()
通道来监听取消事件。defer cancel()
来在函数返回时取消上下文。select
context.Done()
채널을 사용하세요. 함수가 반환될 때 컨텍스트를 취소하려면 Goroutine에서
defer cancel()
을 사용해야 합니다. 필요할 때
select
문을 사용하여 Goroutine에서 취소 이벤트를 수신합니다.
위 내용은 고루틴에서 컨텍스트 취소 기능을 어떻게 사용하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!