一个goroutine通知另一个goroutine结束任务

package main

import (
“fmt”
“strconv”
“sync”
)

var (
msg chan string
signal chan bool
)

func main() {
signal = make(chan bool)
msg = make(chan string)
var wg sync.WaitGroup
wg.Add(1)
go func() {
send()
wg.Done()
}()

wg.Add(1)
go func() {
    receive()
    wg.Done()
}()
wg.Wait()

}

//生产者
func send() {
for i := 0; i < 100; i++ {
msg <- strconv.Itoa(i)
}
close(msg) /当关闭一个channel时,所有因为接收该channel而阻塞的语句会立即返回*/
}

//消费者
func receive() {
for m:=range msg{
fmt.Println(m)
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值