/**
* Created by Administrator on 13-12-9.
*/
package main
import "fmt"
import "time"
func main() {
closeChan := make(chan int, 3)
go func() {
i := 0
var flag int = 0
go func() {
flag = <-closeChan
}()
for flag == 0 {
i++
fmt.Println("goroutine 1", i)
time.Sleep(time.Second * 1)
}
}()
go func() {
i := 0
var flag int = 0
go func() {
flag = <-closeChan
}()
for flag == 0 {
i++
fmt.Println("goroutine 2", i)
time.Sleep(time.Second * 1)
}
}()
go func() {
i := 0
var flag int = 0
go func() {
flag = <-closeChan
}()
for flag == 0 {
i++
fmt.Println("goroutine 3", i)
time.Sleep(time.Second * 1)
}
}()
time.Sleep(time.Second * 10)
closeChan <- 1 // 关闭1个
time.Sleep(time.Second * 10)
closeChan <- 1 // 关闭1个
time.Sleep(time.Second * 1
通过chan控制多个goroutine
最新推荐文章于 2024-06-16 23:23:03 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)