首页 > 其他分享 >Go交叉打印

Go交叉打印

时间:2023-03-09 21:12:17浏览次数:31  
标签:交叉 fmt 打印 chan number sync var bool Go

package main

import (
	"fmt"
	"sync"
)

var wg sync.WaitGroup
var number, letter = make(chan bool), make(chan bool)

func printInt() {
	defer wg.Done()
	i := 1
	for {
		_, ok := <-number
		if !ok {
			close(letter)
			return
		}
		fmt.Printf("%d%d", i, i+1)
		i += 2
		letter <- true
	}
}

func printLetter() {
	defer wg.Done()
	l := 'A'

	for {
		_, _ = <-letter
		if l > 'Z' {
			close(number)
			return
		}
		fmt.Printf("%c%c", l, l+1)
		l += 2
		number <- true
	}
}

func main() {
	wg.Add(1)
	wg.Add(1)
	go printInt()
	go printLetter()
	number <- true
	wg.Wait()
}

标签:交叉,fmt,打印,chan,number,sync,var,bool,Go
From: https://www.cnblogs.com/liy36/p/17201424.html

相关文章

  • MongoRepository查询数据常用语法
    安装查看mongo可用版本dockersearchmongo安装指定版本的mogo或者拉取最新版本的镜像dockerpullmongo:latest或者官网下载安装包https://www.mongodb.com/try......
  • 路飞-day10——celery执行异步、延迟、定时任务,django中使用celery(秒杀商品功能),轮播图
    目录一、celery执行异步任务,延迟任务,定时任务异步任务延迟任务定时任务二、django中使用celery2.1定时任务推荐使用的框架(了解)2.2秒杀功能2.2.1秒杀功能逻辑分析2.1.2......
  • MongoDb服务搭建
    参考官网教程:https://www.mongodb.com/docs/v4.4/tutorial/install-mongodb-on-red-hat/1、配置yum仓库,安装[mongodb-org]name=MongoDBRepositorybaseur......
  • RN navigation goback刷新上一个页面
    /***SampleReactNativeApp*https://github.com/facebook/react-native*@flow*/importReact,{Component}from'react';import{AppRegistry,......
  • GOLAND-激活码-20230309
    33MEHOB8W0-eyJsaWNlbnNlSWQiOiIzM01FSE9COFcwIiwibGljZW5zZWVOYW1lIjoiUG9saXRla25payBNZXJsaW1hdSBNZWxha2EiLCJhc3NpZ25lZU5hbWUiOiJtYWdnaWUgc2VyIiwiYXNzaWduZWVFbWFp......
  • GO语言学习笔记-接口篇 Study for Go ! Chapter six - Interface
    持续更新Go语言学习进度中......GO语言学习笔记-类型篇StudyforGo!Chapterone-Type-slowlydance2me-博客园(cnblogs.com)GO语言学习笔记-表达式篇Study......
  • Go goroutine
    Gogoroutine并发和并行并发并发表示的是单核运行多个线程(通过CPU轮询实现的,比较损耗CPU,CPU切换的过程)并行并行表示的是多核上面运行多线程goroutine//协程是轻......
  • Django之form组件
    Form介绍我们在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来。与此同时我们在好多场景下都需要对用户的输入做校......
  • golang调用opencv实现图像识别
    https://gocv.io/https://github.com/hybridgroup/gocvpackagemainimport( "fmt" "image" "image/color" "os" "strconv" "gocv.io/x/gocv")funcmain(){......
  • Go循环判断
    if条件判断ifage>18{}elseifage==18{}else{}for循环continue:直接执行下一次循环break:直接退出循环//写法1fori:=0;i<3;i++......