Golang bool值控制通道通信 控制通道退出

Golang中bool值控制通道关闭
本文介绍了如何在Golang中使用bool值来控制通道的通信和程序的退出,通过示例代码展示了具体的实现方式。

示例代码:

package main

import (
	"fmt"
	"math"
	"time"
)

func newsFunc(a chan string) {
	t := time.NewTicker(time.Millisecond * 300)

	i := 0

	for j := 0; j < 20; j++ {
		i++
		fmt.Println("ydook.com No. ", i)
		<-t.C
	}

}

func movFunc(c chan bool) {
	t := time.NewTicker(time.Millisecond * 100)

	i := 0

	for j := 0; j < 30; j++ {
		i++
		j := time.Duration(i * int(math.Pow(10, 9)))
		time.Sleep(j)
		fmt.Println("_______________________________________________________________")
		fmt.Println("Duration = ", j)
		fmt.Println("www.ydook.com No. ", i)
		<-t.C
	}

	c <- true
}

func main() {

	c1 := make(chan string)
	c2 := make(chan bool)

	newsFunc(c1)
	movFunc(c2)

	// 处理通道返回
	for {
		select {
		case <-c2:
			// return 退出通道处理
			return
		case <-c1:
			meg := <-c1
			fmt.Println(meg)
		}
	}

}

运行代码:

ydook.com No.  1
ydook.com No.  2
ydook.com No.  3
ydook.com No.  4
ydook.com No.  5
ydook.com No.  6
ydook.com No.  7
ydook.com No.  8
ydook.com No.  9
ydook.com No.  10
ydook.com No.  11
ydook.com No.  12
ydook.com No.  13
ydook.com No.  14
ydook.com No.  15
ydook.com No.  16
ydook.com No.  17
ydook.com No.  18
ydook.com No.  19
ydook.com No.  20
_______________________________________________________________
Duration =  1s
www.ydook.com No.  1
_______________________________________________________________
Duration =  2s
www.ydook.com No.  2
_______________________________________________________________
Duration =  3s
www.ydook.com No.  3
_______________________________________________________________
Duration =  4s
www.ydook.com No.  4
_______________________________________________________________
Duration =  5s
www.ydook.com No.  5
_______________________________________________________________
Duration =  6s
www.ydook.com No.  6
_______________________________________________________________
Duration =  7s
www.ydook.com No.  7
_______________________________________________________________
Duration =  8s
www.ydook.com No.  8
_______________________________________________________________
Duration =  9s
www.ydook.com No.  9
_______________________________________________________________
Duration =  10s
www.ydook.com No.  10
_______________________________________________________________
Duration =  11s
www.ydook.com No.  11
_______________________________________________________________
Duration =  12s
www.ydook.com No.  12
_______________________________________________________________
Duration =  13s
www.ydook.com No.  13
_______________________________________________________________
Duration =  14s
www.ydook.com No.  14
_______________________________________________________________
Duration =  15s
www.ydook.com No.  15
_______________________________________________________________
Duration =  16s
www.ydook.com No.  16
_______________________________________________________________
Duration =  17s
www.ydook.com No.  17
_______________________________________________________________
Duration =  18s
www.ydook.com No.  18
_______________________________________________________________
Duration =  19s
www.ydook.com No.  19
_______________________________________________________________
Duration =  20s
www.ydook.com No.  20
_______________________________________________________________
Duration =  21s
www.ydook.com No.  21



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值