Go语言第二十课 计时器 time.Time

package main

import (
	"bufio"
	"fmt"
	"os"
	"strings"
	"time"
)

var prt_str string

func main() {
	channel_test := make(chan string)

	go output(channel_test)

	for {
		inputReader := bufio.NewReader(os.Stdin)
		str, err := inputReader.ReadString('\n')
		if err == nil {
			channel_test <- str
			if strings.Compare(str, "stop\n") == 0 {
				break
			}
		}
	}

}

//receive only
func output(ch <-chan string) {
	var timer <-chan time.Time
	for {
		select {
		case x := <-ch:
			prt_str = x
			fmt.Print("receive:" + prt_str)
			timer = time.After(time.Second * 3)//延迟3秒向timer发送信号,触发case <-timer
		case <-timer:
			fmt.Print("doing print:" + prt_str)
		}

	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值