美文网首页GoWorld
go语言——协程

go语言——协程

作者: mihope | 来源:发表于2018-12-08 00:04 被阅读5次

    协程

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        c := make(chan int)
        go func() {
            for i := 0; i < 10; i = i + 1 {
                c <- i
            }
            close(c)
        }()
    
        for i := range c {
            //fmt.Println(<-c)
            fmt.Println("i=", i)
        }
        
        //-------------------------
    
        ch := make(chan int)
        quit := make(chan int)
        go func() {
            for i := 0; i < 10; i++ {
                fmt.Println(<-ch)
            }
            quit <- 0
        }()
        fibonacci(ch, quit)
    }
    
    func fibonacci(c, quit chan int) {
        x, y := 0, 1
        for {
            select {
            case c <- x:
                x, y = y, x+y
            case <-quit:
                fmt.Println("quit")
                return
            }
        }
    }
    
    

    相关文章

      网友评论

        本文标题:go语言——协程

        本文链接:https://www.haomeiwen.com/subject/nysfhqtx.html