跳转至主要内容

C'est La Vie

Go语言的并发编程

hliang
最后编辑于 2013年1月20日

i intGo语言中原生引入了协程,可以通过channel实现协程间通信。

示例代码如下:

package main

import (
	"fmt"
)

func myFunc(c chan int, i int) {
	fmt.Printf("from myFunc %dn", i)
	c <- 1
	defer close(c)
}

func wait(c chan int) {
	hasMore := true
	for hasMore {
		if _, hasMore = <-c; hasMore {
		}
	}
}

func main() {
	c := make(chan int)
	for i := 0; i < 100; i ++ {
		go myFunc(c, i)
	}
	wait(c)
}
分类:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注