首页 > 其他分享 >哪怕是抄,也要每天坚持打卡

哪怕是抄,也要每天坚持打卡

时间:2022-11-27 23:33:43浏览次数:33  
标签:语句 每天 哪怕 chan 阻塞 打卡 执行 select

个人学习笔记
go select

package main

import (
	"fmt"
	"time"
)

//在一个select语句中,Go语言会按顺序从头至尾评估每一个发送接受的语句。
//如果其中任意一句可以继续执行(即没有被阻塞),那么就从那些可以执行的语句中任意选择一条来执行
//如果没有一条语句可以执行(即所有通道都被阻塞),那么有如下来中可能的情况:
//1,如果给出了default语句,那么就会执行default语句,同时程序的执行会从select语句后的语句中回复
//2.如果没有defalut语句,那么select语句将被阻塞,直到至少有一个通信可以进行下去

func main() {
	ch := make(chan int)
	quit := make(chan bool)
	//新开一个协程,一直监听管道中的值
         go func() {
		for {
			select {
			case num := <-ch:
				fmt.Printf("num = %d\n", num)

			case <-time.After(time.Second * 10):
				fmt.Println("超时")
				quit <- true
			}
		}
	}()

	for i := 0; i < 5; i++ {
		ch <- i
		time.Sleep(time.Second)
	}

	
	//取出quit管道中的值
	<-quit
	fmt.Println("程序结束")
}

当for循环结束的时候会执行下一个case,等待10s,然后输出超时和程序结束

标签:语句,每天,哪怕,chan,阻塞,打卡,执行,select
From: https://www.cnblogs.com/jianjiana/p/16931024.html

相关文章