首页 > 其他分享 >Golang交替打印奇偶数

Golang交替打印奇偶数

时间:2024-04-15 11:36:02浏览次数:24  
标签:wg 奇偶 evenCh defer 打印 sync Golang oddCh

package main

import (
	"fmt"
	"sync"
)

var wg sync.WaitGroup

func main() {
	evenCh, oddCh := make(chan bool, 1), make(chan bool, 1)
	defer close(evenCh)
	defer close(oddCh)

	wg = sync.WaitGroup{}
	wg.Add(1)

	go printNumbersSequentially(1, 10, oddCh, evenCh)

	evenCh <- true

	wg.Wait()
}

// 合并后的打印方法
func printNumbersSequentially(start, end int, oddCh, evenCh chan bool) {
	for i := start; i <= end; i++ {
		if i%2 == 0 { // 偶数
			<-oddCh
			fmt.Println(i)
			evenCh <- true
		} else { // 奇数
			<-evenCh
			fmt.Println(i)
			oddCh <- true
		}
	}

	wg.Done()
}

标签:wg,奇偶,evenCh,defer,打印,sync,Golang,oddCh
From: https://www.cnblogs.com/qcy-blog/p/18135579

相关文章

  • Feign日志 - 自定义 info级别打印
    背景由于feign,默认只有debug的level,才能打印出日志。不太符合一般项目的loginfolevel的约定。因此决定自定义feign的log打印。目的在infolevel下,可以打印feign日志寻找线索打开openfeign的核心包目录寻找log相关类 feign-1.png通过FeignLoggerfactor......
  • 浏览器 自带打印调用以及样式修改与调试
    1.代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>print</title></......
  • 终端打印命令echo
    双引号和单引号双引号会对特殊字符进行解释,而单引号不会对其作出任何解释。echo"$SHELL"#输出结果:/bin/bashecho'$SHELL'#输出结果:$SHELL转义换行符echo-e"a\nb\n\c"彩色输出echo-e"\e[1;31mthisisredtext\e[0m"色彩码303132333435363......
  • UE4 iOS打印出所有线程的调用栈
    在Xcode15.2中调试UE4游戏(Development包),执行btall打印出所有线程(共116个线程)的调用堆栈*thread#1,queue='com.apple.main-thread',stopreason=signalSIGSTOP*frame#0:0x00000001f9c7d178libsystem_kernel.dylib`mach_msg2_trap+8frame#1:0x00000001f......
  • Android蓝牙打印(转)
    把Android变为蓝牙打印设备摘要随着移动技术的快速发展,蓝牙打印设备在各行各业中得到广泛应用。本文将介绍如何将Android设备转化为蓝牙打印设备,以便实现无线打印功能。首先,我们将了解蓝牙打印机工作原理,然后介绍如何在Android平台上开发相关功能,并提供代码示例。1.蓝牙打印机......
  • 云打印技术怎么样?云打印优点有哪些?
    随着云打印技术的发展,现在有越来越多的用户想要使用云打印服务了。那么云打印技术到底怎么样?云打印有哪些优点?今天就带大家来了解一下。 云打印技术怎么样?云打印技术的优点有哪些?云打印是指有打印需求的用户通过互联网上传打印需求,云服务器接受打印需求后即可快速打印,......
  • 脑洞golang embed 的使用场景
    golang的embed的功能真是一个很神奇的功能,它能把静态资源,直接在编译的时候,打包到最终的二进制程序中。为什么会设计这么一个功能呢?我想和golang的崇尚简单的原则有关系吧。它希望的是一个二进制文件能走天下,那么如果你作为一个web服务器,还需要依赖一大堆的静态文件,终究不......
  • ANDROID STUDIO操作蓝牙打印机(转)
    前言工作中或多或少都会遇到困扰自己很久的问题,我也毫无例外,曾经在项目中对蓝牙打印这一块也困惑和迷茫过,最近在做项目重构的时候,翻看了之前写的代码,还是决定通过两篇文章详细阐述蓝牙连接打印机完成整个打印流程的操作,目的是对工作的一种总结,其次是输出。好比玩个压缩,又是绿......
  • golang JSON序列化和反序列化
    目录JSON序列化(Marshaling)JSON反序列化(Unmarshaling)错误处理和注意事项在Go语言(通常被称为Golang)中,JSON(JavaScriptObjectNotation)是一种常用的数据交换格式。Go标准库提供了encoding/json包,使得JSON的序列化(将Go数据结构转换为JSON格式的字符串)和反序列化(将JSON格式的字符串......
  • tracer ftrace笔记(23)—— 上层trace打印流程-TODO
    1.ATRACE_INT打印不出来分析#defineATRACE_INT(name,value)atrace_int(ATRACE_TAG,name,value)///system/core/libcutils/include/cutils/trace.hstaticinlinevoidatrace_int(uint64_ttag,constchar*name,int32_tvalue){ if(CC_UNLIKELY(atrace_is_tag_enabl......