>백엔드 개발 >Golang >Go에서 Goroutine 코루틴을 구현하는 방법은 무엇입니까?

Go에서 Goroutine 코루틴을 구현하는 방법은 무엇입니까?

WBOY
WBOY원래의
2024-06-01 14:47:56867검색

Go로 구현된 고루틴: 구문: go func() { ... }. 실제 사례: 피보나치 수열을 계산하고 버퍼링되지 않은 채널을 통해 결과를 보내는 고루틴을 만듭니다.

如何在 Go 中实现 Goroutine 协程?

Go에서 고루틴 코루틴을 구현하는 방법은 무엇인가요?

Golang의 고루틴은 작업을 동시에 실행하는 데 사용할 수 있는 경량 코루틴입니다. 스레드와 달리 고루틴은 가볍고 Go 런타임에 의해 관리되므로 수동으로 생성하거나 관리할 필요가 없습니다.

Syntax

고루틴을 생성하는 구문은 다음과 같습니다.

go func() {
    // Goroutine 的代码
}()

실용 사례

다음은 고루틴을 사용하여 피보나치 수열을 계산하는 실제 사례입니다.

package main

func main() {
    c := make(chan int)

    go fibonacci(10, c)

    for i := range c {
        fmt.Println(i)
    }
}

func fibonacci(n int, c chan int) {
    x, y := 0, 1
    for i := 0; i < n; i++ {
        c <- x
        x, y = y, x+y
    }
    close(c)
}

지침

  • make(chan int)는 버퍼링되지 않은 채널 c를 생성합니다. make(chan int) 创建一个无缓冲通道 c
  • go fibonacci(10, c) 启动一个 Goroutine 来计算斐波那契序列并将其发送到通道 c 中。
  • for i := range c 从通道 c 中接收值并打印到标准输出。
  • close(c)
  • go fibonacci(10, c)는 고루틴을 시작하여 피보나치 수열을 계산하고 이를 c 채널로 보냅니다.
🎜for i := range cc 채널에서 값을 받아 표준 출력으로 인쇄합니다. 🎜🎜close(c) 고루틴 계산이 완료된 후 채널을 닫습니다. 🎜🎜

위 내용은 Go에서 Goroutine 코루틴을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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